The AGON light: New open source 8-bit System

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi it's John beta and today we are going to take a look at a fully open source new 8-bit computer system the Argon light so as you can see it's a small system designed to be both very inexpensive and versatile and it is actually a true 8-bit system running a true 8-bit ez80f92 CPU which is a modern incarnation of the z80 or z80 whatever you want to call it processor from back in the day that process is running at 18.432 megahertz which makes it equivalent to an old-school z80 running at approximately 55 megahertz so this is super fast compared to the original output systems it has a little arduino-like chip and esp32 Pico running at 240 megahertz as the video processor and it has 512 kilobytes of system Ram which is static RAM used by the CPU it has eight megabytes of audio video RAM used by the little micro controller VDP chip it can display 64 simultaneous colors at a maximum screen resolution of 640 by 480 pixels and it is an instant on system in this configuration it runs BBC basic right after you turn it on and here's the banana for scale so the whole project actually started excuse me so the whole project started with a dream that Bernardo Castro who also designed the servers 2080 computer that I took a look at in a previous video he had the dream ever since he used his zx81 back in the day to be able to control devices with programming them in basic from his zx81 so he kind of wanted a microcontroller that was able to control things and to measure things but he didn't get very far with his pretty limited zx81 and now he and the Argon light team were finally able to fulfill that dream kind of with the Argon light Hardware so let's take a closer look at this so apart from this being a fully self-contained 8-bit microcomputer with VGA out with an audio out with a little SD card for storage with an input for a PS2 keyboards or a USB keyboard that is PS2 compatible through one of these adapters power comes through this USB plug here it also comes with a reset switch apart from this being fully self-contained computer 8-bit machine running basic we also have gpio pins on here that are programmable via the BBC basic so this is a very fast and very inexpensive true 8-bit microcomputer running a real 8-bit micro processor no fpgas or anything like that the only thing that comes close to that is the microcontroller used for the graphics and the sound but that is basically used as a separate custom chip in here and to keep the cost down the design team decided on using a pre-existing microcontroller which is independent of the CPU so it is not used as a CPU but just as a graphics and sound processor the processor in here is the z80 just running at higher clock speeds as the old school z80s were able to run at it is very instant on so you plug the power cable in and you instantly get a basic prompt like back in the day the gpio header is addressable through the basic and this is fully customizable the firmware on here can be customized there are basically endless possibilities and on top of that the whole project is open source both hardware and software are open source this is designed to be about fifty dollars U.S to manufacture which makes this kind of a true computer for the masses not the classes in the best sense of that statement I think I have everything I need to actually try this I'm going to hook it up to my monitor and I'm going to hook up a simple USB power adapter to the USB input on this and also a PS2 keyboard that I have lying around and then we're going to have a look at what this thing can actually do so I hooked up a PS2 keyboard VGA is connected to my monitor here I'm going to plug this into my iPhone charger which I use as a power source and we get a basic prompt and apart from Bernardo Castro working on this it was also Geron venema and Dean balfield who helped bring this to life Dean Belford did the part of BBC basic which is still maintained by RT Russell actually I'm going to link that in the video description and he ported it to the Argon light Dean Battlefield did that better known to the community as break into program yeah basically this is BBC basic we can program this just as you would program any PVC basic interpreter basically just got to keep in mind that BBC basic is actually case sensitive so all the commands have to be uppercase but yeah and as you can see it's plenty fast for a basic system this is just my simple little demonstration program yeah you can use this like an old school basic machine to start with which is kind of amazing and PPC basic is a basic dialect that's pretty cool pretty sophisticated basic aimed at learning programming actually that was the intention of the whole BBC basic project originally and it's still one of the most widespread basic dialects actually I think so this is a standard programming language still the first thing I'm going to do is to try and upgrade the firmware on this so we can run the latest example programs I actually procrastinated making this video for quite a while and there have been several updates for the firmware in the meantime so we need to do that but it's also an opportunity to show you how easy it is to upgrade the firmware on this thing actually so let's do that so we are just going to pull the plug the power plug to turn this off and we're going to remove the little SD card or micro SD card from this slot here we're going to have to copy some stuff on this to be able to upgrade the firmware and there is a pretty easy to use allegedly argon MOS firmware upgrade utility MOS is just the name of the firmware probably a not to MOS the chip manufacturer from back in the day who made the 6502 processor and other things and yeah we need the Legacy version because the generic version of the upgrade utility needs firmware 1.02 we are on firmware 1.01 so we need to use the Legacy version that can upgrade our argon to the latest version we just need to copy this into the root directory of our microSD and then run these commands to do the upgrade and we're going to copy those onto the SD card into our root directory we're going to plug the SD card back into our argon and now we should be able to do a load flash where's the underscore there it is I'm using a German keyboard layout here so I have to uh accommodate for that a bit in my brain which is still not quite awake uh yeah this should load our software from the SD card no such variable ah we probably have to leave basic so we're now in BBC basic so we have to do asterisk by now we're in argon Quark MOS which is the firmware operating system so now we should be able to do uh load Flash Legacy bin okay yay okay that's that's the catch okay now we can do like direct addressing of things so obviously I'm a Noob with this system still uh so this is actually the first time I ever use this thing so we have to quit BBC basic which is auto started on my unit which is pre-configured to just run BBC basic and then we can load the flash Legacy software from the actual argon Quark MOS which works fine with the command that is given in the GitHub readme so now we can Flash our firmware and we can start the program by jumping to this memory address one more zero that should start the flashing process let's see yeah there we go and this is the Legacy tool obviously testing the CRC erase and program Flash yes backing up existing firmware so this should work without any issues and we should start up the next time with the new firmware reset okay it's Auto resetting let's wait it out yeah there we are argon Quark MOS version 1.02 yeah so we upgraded the firmware successfully that's as easy as it is really if you are not a noob like me and try to do it from BBC basic you shouldn't you should try to upgrade the firmware from the firmware so let me just copy some of the example programs for BBC basic and things like that to the SD card from the GitHub which is going to be linked in the video description in case you want to take a look I'm also going to link the Argon project page obviously so you can look at the code and the Gerber files for making your own circuit board and the bomb everything is freely available so you can make your own if you so desire so I'm just downloading the whole thing here the manual and everything so we have everything in a convenient zip file here and we should just be able to copy across the micro SD card files folder from our downloads and I'm just overwriting everything with the new files basically so now we should have the latest examples on our SD card and we're starting up with BBC basic again which is kind of nice you can also update the code on the VPD the graphics and sound processor in there but I don't think there's an update for that yet so we're back in PVC basic and we're going to look at some of the example files which you can just load with the BBC basic load command now let's do the triangles test and we can run this with one it's actually changing the screen mode and displaying random triangles and this is interpreted basic so it is a pretty capable little machine uh listed this is the whole program changes the graphics mode with mode 0 and it changes the color palette with three random RGB values and then plots triangles and repeats so that's the whole program that gives me the output we've just seen which is pretty amazing it's pretty easy to work with yeah my monitor here has some issues with the screen modes I think but works well enough let's try some other examples shall we so we should be able to clear the screen with a CLS yeah we are cancel list our program we can catalog our directory with Asterix cat or uppercase because all commands have to be uppercase there's a scroller program let's try the scroll program control one PVC run this uses the screen mode that is not supported yeah this uses mode 2 which my monitor doesn't seem to support we're going to have to find the workaround for that I guess this is an old television so it doesn't support all the regular VGA screen modes probably if you hook up a proper VGA monitor it should work let's load the cube demo BBC run and we have a rotating Cube 3D programming and that's a bit more sophisticated let's run it again in another wireframe mode zero yeah this is uh the highest resolution screen mode I think and I mean it's basic it's interpreted basic so it's not going to use the full speed of the processor because it is it has to interpret it's a basic interpreter but yeah yeah so obviously I could play with this all day more or less but let's try something else and this is a Mendel broad program that draws the Monday board figure on the screen and it takes a while so I'm going to be back shortly yeah so that took a while to run but we now have our Monday board display here and looks kind of neat and it ran way faster or than on the old school 8-bit systems where you would usually leave the system on on overnight or something like that to get a picture like this calculated and output to the screen so yeah this is the code which is not very massive you can see that it's pretty easy to plot stuff on screen and change the color and things like that the rest of it is the calculations necessary to generate such a picture here so as it turns out there actually is a firmware update for the VDP chip the esp32 chip that handles the graphics output and the newer examples require that newest firmware version so we're going to have a chance to look at the update process which should be pretty straightforward we are going to use the Arduino IDE and I have connected the Argon to my old ThinkPad here via the uh same USB cable that the power runs through that should also be the programming port for the art you know trip that's on here actually for the esp32 so yeah let me download the firmware and we're going to try to upgrade the firmware on the VDP actually the Argon is powered through my ThinkPad now so that works if you have nothing connected to the i o pins there we have enough juice on a regular USB port to power this thing so I am on the GitHub for the VDP firmware and there is a walkthrough about how to pull this off updating the VDP which I'm going to follow I'm going to download the latest release which should be the source code ZIP file here going to unzip that and we probably should be fine we have to make some settings in the Arduino IDE which is a free download on the Arduino CC website select preferences from the file menu and copy this string this URL it's a file preference this is all in German on my end here I'm sorry yeah we need to put this into additional board manager URLs okay we have to select the esp32 board making sure version 2.0.4 is installed okay board manager we have to click on board and then there's our board mentioned up there okay esp32 there we are 2.0.7 I guess we're going to be fine with the newer version the walks through says 2.0.4 should be installed install this okay this is downloading all the necessary tools for esp32 Dev boards that we're going to need to be able to program this because this basically acts like a Dev board and after we have downloaded and installed everything from this package we should be able to select the board and configure it according to the plan now the board can be selected and configured from the tools manager ESP okay esp32 def module we should be able to configure this okay 92 yeah that's correct that is correct that is correct q i o is correct flash size is correct yeah that should all be correct and we need a third-party library fabgl from our library manager library library manager that real version one point open let's go with the version that is indicated in the walkthrough yeah that has the VGA stuff and things like that Fab GL is the library used to make this into a graphics chip I guess now it's another bit of installation process that I'm going to skip for the video and then we're probably good to load the sketch and compile it and upload it to the VDP actually we can probably go to our downloads folder select our icon VDP and load our video sketch so that's our argon video bios it's your own vinema did the Sprite code Damian guard did the fonts which are BBC like fonts if I'm not mistaken so let's see if this compiles no such file ah okay we have to include our files okay it needed some more fiddling but now I got this to compile and I'm pretty sure that this is what we need what I did was in the documents folder actually there's an Arduino folder this is for the windows version of the Arduino IDE there's an Arduino folder and in that folder there's a libraries folder and I made a directory called Argon and just put all the dot 8 files from the download of the firmware into that and the libraries folder in the documents folder is actually also added in the Arduino IDE so you have to restart the whole Arduino IDE I loaded the sketch again and now it finds everything it needs it seems so uh probably it's a good time to start programming our esp32 maybe let's try and uh yeah just as a precaution I don't know if this is necessary I'm just going to quit vbc basic with asterisk Buy so we should be back in argon Quark MOS and now we should be able to program fingers crossed this is going to get uh to something okay it's going to compile again and then it is going to upload it hopefully this takes a while the whole compile compilation process took several minutes on this elderly ThinkPad but it got through so uh chances are we're going to end up with an updated VDP I'm going to report back connecting to the serial part writing the Argon actually did a little beep and uh shut down the themes so it's now writing to the ESP flash memory and it restarted and we now have VPD or VDP I don't know it's not coherently labeled uh version 1.02 success so apart from me being a noob with the Arduino IDE and taking some wrong turns there this is actually not that difficult to do so we're now on the latest firmware both on the VPD VDP and Quark MOS software so let's try some more sophisticated demo stuff on the Argon so rebooting the Argon by plugging the USB power supply back in and this is how long it takes to boot up this was a real time and sorry I'm uh just filming the screen here I don't have a proper VGA capture device okay we have animal let's load animal that should be some kind of game I think Guess the Animal are you thinking of an animal that's AI right there the future everybody does it fly I'm thinking of an animal it doesn't fly doesn't live in water part-time I'd say so maybe yes is it a mammal no is it a fish no does it have a hard shell no doesn't have a tentacles no does it have a nasty smell I don't know I'm not sure no probably not is it a frog no okay I give up it is a penguin please tell me a question that would distinguish a penguin from a frog doesn't have a beak for a penguin the answer would be yes yeah let's just try them all out I guess so to counteract the screen modes that my monitor doesn't support I actually remembered my ossc upscaler which supports VGA inputs and I was able to get this to somewhat work and to display on my screen using the ossc connected to the Argon and this is the one of the scroll Demos in one of the screen modes that didn't work so it can do smooth scrolling with the new VDP firmware as you can see unfortunately parts of the screen are cut off as you can see here that's the ossc I'm not sure how to counteract that but we're just going to load some other demos here so this is uh examples how to use a game code basically this is the smooth scrolling that's implemented here and of course we can list this that's the whole program for the scrolling so there's a vdu command which is I think that should be the one responsible for the scrolling this is a Sprite demo these look pretty smooth as well let's load another Sprite demo and obviously these are just examples about what this could do potentially running that one that's even more Sprites so apparently it seems it can do a lot of Sprites that's the pac-man-like ghost there or many of them multi-color Sprites nice okay what else do we have here and you can see that the Sprites actually behave like Sprites let's see if they are removable with the CLS command no they aren't just like on your old school computers they are independent of the rest of the graphics output which is kind of what Sprite means there's a lot of benchmarks in here all standard basic benchmarks that we are not going to take a look at I think it's not that interesting but these were put there because the claim that this is the fastest 8-bit system on the market as a single device was kind of backed with facts so they ran a lot of benchmarks on this thing and compared it against other 8-bit computers current and old school ones so there's a sound demo that we didn't look at and apparently this actually has a little sound output so we're going to hook up a speaker if I can find it this is my little JBL speaker this is a stereo output but I'm recording the video In Mono anyway so uh this is just a mono speaker that I'm connecting because you wouldn't hear the difference let's load the sound demo I guess load [Music] laughs okay uh that's some very old school 8-bit sound there probably Square wave and yeah this is uh the whole code for Amazing Grace these are the notes probably and we have the sound command that works with the sound output on the Argon as well yeah I guess we've looked at all the examples that are on there at this point yeah those were some BBC basic examples running on the Argon and obviously since this is completely open source the firmware the hardware and the software you can modify this to whatever you wanted to do basically you can program the little z80 chip there using the z80 programming kit even in basic you can do pretty amazing stuff and we're going to look at another thing that this thing is great at in a second and that is the GPI opens can actually be addressed via the BBC basic which makes this relatively easy to work with if you're not familiar with Arduino stuff like I am the Argon light obviously has a a gpio header sticking out the site here which is actually a fully programmable gpio header as you are probably used from your regular microcontrollers and Raspberry Pi's and things like that and I have installed my very very sophisticated test rig here consisting of an LED connected through a 4.7 kilo ohms resistor to a ground pin on the gpio header and I've connected pin 17 to the anode of the LED so let's see what we can do with this led through basic let's see if we can make it light up at least so the gpio header is completely addressable through memory addresses in the z80 processor so we can actually talk to it through basic commands in standard configuration they are all set to inputs we can see that by reading memory address 159 which are the PC the C portion of the gpio pins are all set to inputs we can set them to Output which we want for all led by setting memory address 159 to 254. that should put our pin we connected our led to to the output mode and then we can address this pin with the commands 158 1 for on so let's see if we can put Power with the command to our LD hitting return yay so that's literally how easy it is and if I set that memory address 158 to 0 the LED should turn off again which it does noise so that's obviously not the most sophisticated demo but uh it is that easy to address the gpio pins just wanted to point that out and it would be pretty easy to come up with a program that makes the LED blink or something like that and there's a little example program on the SD card here that shows me how to actually use these in a program in a bit more sophisticated way we can basically set these pins these are the B pins on the gpio header the addresses for those and the C pins the addresses for those as a hexadecimal values we can set these in variables and then use those variables to address the pins basically which is pretty easy to do I find this way easier to understand than programming an Arduino with the Arduino IDE basically so uh this is more my kind of style of programming basic as I said just to give you a quick example of how this is doable in basic actually and obviously you can do more sophisticated stuff than I came up with for this quick demo here by just reading data from GPI opens writing data to multiple gpio pins and all from the Cozy BBC basic interpreter there if you so desire and since this is one of my videos we are obviously going to try to take a look under the hood here let's open this up and see how this is constructed actually there we go so that's everything that is on here we have our little reset button we have the USB port which has a little USB Bridge controller here this this little chip here we have our VGA port we have our audio output we have our PS2 port for the keyboard we have our little SD card micro SD card reader here a little beeper speaker that can output some annoying sounds we have a access bus header which allows us to plug in like little OLED displays and things like that into here this can be used as an i squared C bus we have Ram this is 512 kilobytes of parallel SRAM static Ram this is our z80 processor and ez80f92 running at 18.432 megahertz as I said we also have our little esp32 Pico D4 running at 240 megahertz this is used for the graphics output and the sound generation basically this is the core processor this is the main processor the heart of the machine we have some jumpers that we don't really have to fiddle with these are just here in case something goes wrong with the ESP programming basically you can set this manually set this to be not in programming mode in case this crashes or something like that because the esps can have some quirks sometimes we have some basic ESD protection which is pretty nice some transient voltage suppression diodes on all the ports especially visible on the gpio port here which is this one we didn't even talk about that and we have a little voltage regulator this this whole thing internally runs on 3.3 volts so we need a voltage regulator to regulate the 5 volts input coming from the USB Jack here you can also power this through pins on the header I think which makes this even more versatile so you don't even need to plug in a USB cable here to run this you don't have to use the graphics output you can basically run this like a microcontroller and just hook stuff up to the gpio pins so that's all very versatile as I've pointed out everything here the processor and the little ESP and the SD card you can change software firmware things like that around to your liking you can program everything to your liking even super small super low cost design which was the goal of the whole project and this is still a true 8-bit processor system with a real z80 processor no fpga no emulation in here the ESP as I said repeatedly is only for graphics and sound output everything on here is still readily available all the components should be pretty easy to Source even with the component shortages at the moment so it should be pretty easy to make your own and you can also buy these pre-made from several sources now they are listed on the website we're going to take a look at that in addition to that the whole project is aimed at the community to be a Community Driven project so you're not only allowed to but encouraged to build your own boards and to even sell them Bernardo himself made a video on the on his channel talking about how to set up production for these and actually sell these so that is encouraged by the creators of the board they are not making any money off of this they put a lot of time and effort into this just to see this project see the light of day and pull it out there for free completely open source open Hardware everything is hackable and changeable to your liking if you understand how that works unlike me so I wouldn't be able to change the firmware code myself or something like that but I can still use this from the basic that is also available for free for this machine you just have to boot that off the SD card as we've seen so pretty neat project and a special needs since this is all openly available and easy to get your hands on and not that expensive let's take a look at some of the websites that already sell these so here we are on the Argon site on bernardo's website you also designed the servers that I made a couple of videos about Talos is another project that's still in the making he made several adapters and things like that so it's a pretty nice website anyway to look at if you are into Retro Computing or tinkering and or tinkering this is always updated pretty quickly when something new arrives for the Argon light this is the board like Bernardo designed it there's also a 3D printable case design that is openly available for the olimax version of argon light olimax is one of the places that sells it and they actually changed the hardware slightly they modified it slightly to optimize it as we're going to see there are several magazines and hackaday also had a little article about the Argon light already there is a native fourth interpreter now for Argon light and there's probably going to be even more projects for this in the future if the word gets spread which I hope to Foster with my little video here yeah olly Max offers a lower cost version of argon light which is pictured here they made some changes to the layout here you can see that all the output pins are on this side here now and they also got rid of the linear Watts regulator I think so we have a list of media coverage here and we have a list of where to get this olimax actually sells their own version which is kind of a cost reduced version but it has the same functionality and that's literally 50 euros to buy olimax is located somewhere in Europe I'm not quite sure where but if you are in Europe you won't even have to pay a hilarious shipping or customs fees or anything like that so this is just super easy and super inexpensive for a system like this PCB way offers this pre-made for 119.99 but this is produced for you so that's probably Justified they have a bit of work with that that's not mass produced we have an Australian reseller already argon light AU where it costs 150 Australian dollars fully assembled with firmware and with the case that we've seen and there's several other options without through-hole parts or only the PCB only PCB is 20 so there's a number of options to get these uh Rhino 2 in the UK offers options for ready to use units which are probably also not that expensive 75 pounds 85 pounds fully assembled if you are in the UK probably worth considering and only we also see the benchmarks that they ran proving that argon light indeed is faster than anything else that's currently available cerberos is pretty fast already but for example the Spectrum next and uh the old system the original z80 systems are significantly slower than this thing obviously because it runs at a vastly higher clock speed and it's just a modern one an optimized one and there there's even a benchmark against the commander x616 and it beats that too as you can see here that's a quick overview of the Argon light which I still have in pieces here yeah as you've seen it's a pretty versatile little thing that can do lots it still is an 8-bit microcomputer which is kind of amazing the most amazing thing about this in my opinion is that it's fully open source in the truest sense of the word and that is pretty low cost as you've seen even if you get a pre-assembled one and it's readily available from a number of sellers now probably there's going to be more options to buy these in the near future because as I said the team themselves are not making any money of this this is fully open source and they are actually encouraging people to sell these on eBay on their own websites and things like that so we are going to have plenty of those in the future hopefully and hopefully there's going to be a lot of people developing stuff for this there already are developments for like CPM running on this thing as we've seen BBC basic is already natively supported and fourth is also already implemented for this system it is capable of playing some games and things we've seen some scrollers and some Sprite demos so I hope this is going to see some development and unlike the other projects that I've shown here this is really not that expensive and potentially very useful for a lot of use cases and even as a standalone 8-bit system it is super nice to Tinker with and you can program PVC basic stuff on this and relearn maybe your basic skills so I think that's it for today I hope you enjoyed this little Excursion into the world of a new 8-bit micro computer I'm going to be back with older computers pretty soon check the links in the video description I'm going to update those in case something new appears but I'm definitely going to link to the GitHub project and the Argon page from Bernardo so you can read up additional information that I didn't manage to include in this video or forgot to include thank you very very much for your support on patreon and on the channel memberships page and also on Kofi hope to see you again on this channel sometime I'm Ian Vita thanks for watching see you next time bye
Info
Channel: Jan Beta
Views: 65,480
Rating: undefined out of 5
Keywords: Jan Beta
Id: PRcipJ-k_aY
Channel Id: undefined
Length: 44min 34sec (2674 seconds)
Published: Mon Feb 27 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.