Let's Build a FAST Serial Terminal with PS/2 and VGA

Поділитися
Вставка
  • Опубліковано 27 жов 2024

КОМЕНТАРІ • 124

  • @NilsKullberg
    @NilsKullberg 3 роки тому +6

    Absolutely splendid! Thanks for sharing these fantastic recipes. - Talk about squeezing everything possible (and a little "impossible" as well) from these small chips ... Very nice indeed!

    • @slu467
      @slu467  3 роки тому +2

      Thanks Nisse, glad you like this stuff, too :-D BTW the sketch uses 2048 of 2048 bytes of SRAM :)))

    • @NilsKullberg
      @NilsKullberg 3 роки тому +1

      @@slu467 I thought as much :-D - Couldn't have been easy to squeeze the final drops out of the chips. Impressive!

  • @amnesie6615
    @amnesie6615 3 роки тому +8

    Wow THIS is cool! Danke für so viel geniale Arbeit, ich weiß das sehr zu schätzen, gerade wenn man noch nicht so erfahren ist.

    • @slu467
      @slu467  3 роки тому +2

      Dankeschön :-) es stecken tatsächlich viele Stunden drin... viel Spaß damit!

  • @your-dad
    @your-dad 3 місяці тому +2

    Fantastic! I think you can do it with only one chip to achieve RCA output, there are those libraries called TVout and PS2Keyboard you can load in one single chip so you can type and recieve with only one chip onstead of three! Please do a video about it :)

  • @TheDarkelvenangel
    @TheDarkelvenangel 3 роки тому +1

    Impressive! And some ANSI escape sequences to boot. I find it amazing what you can do with these micros.

    • @slu467
      @slu467  3 роки тому

      Thanks, glad you like it!

  •  3 роки тому +1

    I'm so impressed, I'm going to implement it on my 6502 homebrew. So far, it's the best Arduino to VGA I've seen.

    • @slu467
      @slu467  3 роки тому

      That's great. Please let me know how it goes!

    •  3 роки тому

      @@slu467 I tried it, and for the most part, it works. Alice does its job. As for Bob, the text is barely legible, it displays the characters unstably/flashy, and dimly. (Don't know how to better describe it) The text position and alignment on the screen are stable. I double-checked the wiring, and all seems ok. I even changed the WIDTH to 40 (both in the .ino and .s files) to see if it would change something. Alas, same result. Timing issue maybe? The monitor detects a signal of 720x480, rather than 640x480. Do you have any pointers? I really want to make this work... it's too cool of a project!

    • @slu467
      @slu467  3 роки тому

      @ Since the text position is stable, this does not sound like a timing issue. If you see the characters too dim (but at their correct place) the pixel data is maybe not driven correctly? I'd double-check the output stage of the 74166 to the VGA connector pins 1, 2, 3 via 150 Ohm. Hmm, but it is also possible that your monitor "misunderstands" the sync signals and therefore switches off brightness... I've only tested the circuit on my older VGA monitor and newer TV which both worked okay... good luck!
      Due to timing constraints the Arduino can't match the VGA timing perfectly. Most monitors are pretty forgiving, though...

  • @stupossibleify
    @stupossibleify 3 роки тому +1

    Love seeing new videos from you! Please keep them coming!

    • @slu467
      @slu467  3 роки тому

      Thanks a lot ... keeps me motivated :-)

  • @christ2290
    @christ2290 Рік тому +1

    Fantastic work and great video!

    • @slu467
      @slu467  Рік тому

      Glad you like it :-) Thanks!

  • @gambler301
    @gambler301 3 роки тому +5

    That's almost exactly what I need for my breadboard pc

    • @slu467
      @slu467  3 роки тому +2

      It's adding that extra bit of vintage touch... :-D

  • @adamhuk447
    @adamhuk447 3 роки тому +1

    Very nice video as always. It was fun to watch. As soon as I have a bit more time, I will try to recreate this. Thanks for your time and sharing the knowledge with us. Grüße

    • @slu467
      @slu467  3 роки тому +1

      Hi Adam, pls let me know how it goes...

    • @adamhuk447
      @adamhuk447 3 роки тому +1

      @@slu467 I will do it. The "Datasette" videos were also very educational and I had a reason to get my old C64 + accessory box out again (in my possession for 30 years).

  • @illdieanyway7865
    @illdieanyway7865 2 місяці тому

    Man you never disappoint, do you?

  • @stuartmartin3408
    @stuartmartin3408 3 роки тому +1

    Brilliant! you got a new subscriber 👍

    • @slu467
      @slu467  3 роки тому

      Welcome aboard, Stuart :-) glad you like my stuff

  • @markholdahl6511
    @markholdahl6511 3 роки тому +2

    This reminds me of Don Lancaster's TV Typewriter only easier to build! :)

  • @ducksonplays4190
    @ducksonplays4190 3 роки тому +4

    This is really interesting, what's your secret to achieving so many great videos in a row?

    • @slu467
      @slu467  3 роки тому +1

      Thanks Duckson Plays, glad you like my stuff. I guess I just do what feels interesting to me :-)

    • @ducksonplays4190
      @ducksonplays4190 3 роки тому

      @@slu467 Well I'm glad we are both interested in the same thing. I don't know if the terminal would be much use to me but it's cool to see. Your minimalistic CPU is worthy of the minicomputer title. :-)

    • @ducksonplays4190
      @ducksonplays4190 3 роки тому

      @@slu467 I think I will use wire wrapping for my CPU since it's more stable than breadboards and less easy to mess up. PCBs seem nice but how do you know your schematic is correct.

    • @slu467
      @slu467  3 роки тому +1

      Wire-wrapping IS kind of interesting for larger projects. Very reliable electrical connections, indeed! BTW I am now at iteration 5 with my PSB computer :-D

    • @ducksonplays4190
      @ducksonplays4190 3 роки тому

      @@slu467 Oooh... I'm curious what is your CPU's instruction set. I want to compare clock efficiency with mine and yours doing the same tasks. Your CPU design seems very chip efficient and powerful.

  • @djc1402
    @djc1402 3 роки тому

    Another great video. I've got all the parts and PCB to make your Minimal UART CPU but haven't got time to build it at the moment. When I get it running I'll let you know and I'll be very interested in adding the terminal to it too.

    • @slu467
      @slu467  3 роки тому

      Hi David, good to hear you plan on joining the 'Minimal' club :-D let me know how it goes!

  • @ASCIITerminal
    @ASCIITerminal 3 роки тому +1

    Very impressive!

    • @slu467
      @slu467  3 роки тому +1

      Glad you like it!

  • @PhilR0gers
    @PhilR0gers 11 місяців тому +1

    I always wondered how to program the barebones microcontroller. Now I know. And now I don't have to embed an entire Arduino Nano in my designs.

  • @WaldoHazeleger
    @WaldoHazeleger Рік тому +1

    Nice project. Certainly gonna build it, since I finished building the minimal v1.5 board now. Would it be possible to replace ps/2 for usb keyboard by replacing atmega328p by an atmega32u4 ?

    • @slu467
      @slu467  Рік тому

      Hey Waldo, USB has a more complicated protocol, so I'd say you definitely would have to upgrade the µCs for that... probably the whole point of this design (squeeze out oldschool stuff) becomes obsolete then ;-)

  • @openBSDguru
    @openBSDguru 2 роки тому +1

    really nice project. are slower bitrates possible. i have some old hardware that only run on 9600 and not 28800?

    • @slu467
      @slu467  2 роки тому +1

      Should be a tiny mod.

  • @mnoxman
    @mnoxman 2 роки тому +1

    Is the limitation of the lines and columns related to the clock or could this generate a 80x24 (+status line (25 total)). What is the minimum baud that this can support (9600?)?

    • @slu467
      @slu467  2 роки тому +1

      IMHO 80 cols is not possible. 60 cols is *just* possible with 24MHz overclocking. I'd like you very much to prove me wrong :-) Min. baudrate in my design is 28800 (can be set by a jumper) but lower rates might be possible if you are playing around with the Arduino timers a bit.

  • @invent0r137
    @invent0r137 2 роки тому +1

    This is so awesome!!! Could you possibly make a video on making it work with composite video instead of VGA?

    • @slu467
      @slu467  2 роки тому +1

      Hi, search for the website of Grant Searle. He has done exactly that ;-)

    • @invent0r137
      @invent0r137 2 роки тому

      @@slu467 Thanks! Yeah I've come across his website before but I don't think I have the skill to fully understand his design yet, but I'll keep learning and get to that level eventually.

  • @chrisskyr623
    @chrisskyr623 3 роки тому +1

    This is awesome

  • @TSteffi
    @TSteffi Рік тому +1

    This is great. Almost perfect.
    Would it be possible to use 3 chips instead of one for bob, one for R,G, and B respectively?
    Alice could use "Chip Select" pins to decide which ones should be active, but send the same data to all 3.
    It would require 7 Chips instead of 3, But would allow for 8 colors.
    Alternatively, you could use another µC to implement ANSI music control codes for some sound output.

    • @slu467
      @slu467  Рік тому +1

      Great ideas! Sounds like a new project, though ;-)

    • @TSteffi
      @TSteffi Рік тому

      @@slu467 Well, since the last manufacturer of serial terminals has closed, you have all the market to yourself ;-)

  • @Redfizh
    @Redfizh 3 роки тому +4

    First! I'm always waiting these :)

    • @slu467
      @slu467  3 роки тому

      Thanks for watching, Samu :-) It has been a while...

  • @enzito_sdf6978
    @enzito_sdf6978 3 роки тому +2

    very cool! do you think this could work at 80x25??

    • @slu467
      @slu467  3 роки тому +1

      The short answer is: No way! ...but maybe somebody proves me wrong in the future :-D

  • @barto1035
    @barto1035 3 роки тому

    7:41 nice to see how you look like! I don't know if this was intentional. Interesting video as always

    • @slu467
      @slu467  3 роки тому

      Thanks, Barto10, I wouldn't have recognized myself in that reflection... but no, that wasn't intentional :-D

  • @hstrinzel
    @hstrinzel 7 місяців тому

    Is this 80-column wide? Much CP/M software requires that... ?

    • @slu467
      @slu467  7 місяців тому

      Nope, it can't do 80 in time. Would love to see someone pull it off on the Nano.

  • @invent0r137
    @invent0r137 2 роки тому

    Hi, I recently tried building this but for some reason I'm not getting any output on the monitor. I was able to change the fuse bytes and upload the bootloader to both of the microcontrollers, and verify that it worked with the blink sketch. I also uploaded the Alice and Bob sketches, and wired everything according to your github schematic. The only difference is that I used a 62 ohm resistor for the vsync and hsync signals since I didn't have a 75 ohm resistor. Any ideas on what I could be doing wrong?

    • @slu467
      @slu467  2 роки тому

      Hi, this design is known to work, i. e. it has successfully been built by others. 62ohms should be fine. I am using 68 all the time. Hard to tell, what is going wrong with your build. I'd recommend using a cheap PC scope to look at all the signals (VSYNC, HSYNC etc.).

  • @ergabibbo2301
    @ergabibbo2301 3 роки тому +1

    8:05 was the breadboard connected only to the keyboard and monitor?

    • @slu467
      @slu467  3 роки тому +1

      Yep, except for the 5V supply of cause :-)

    • @ergabibbo2301
      @ergabibbo2301 3 роки тому +1

      @@slu467 Good , thanks for information.

  • @colonelbarker
    @colonelbarker Рік тому +1

    Hey Slu, I've got some socketed Arduino Unos here, do you think if I programmed them with this code in place I could take them out and used this setup it would work? Assuming I changed the fuses of course!

    • @colonelbarker
      @colonelbarker Рік тому

      Future Aaron here- the boards file is now located at:
      C:\Users\(USER)\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
      For the 2023 version of the IDE.

    • @slu467
      @slu467  Рік тому

      Hey Aaron, as long as you can get your hands on some raw AtMega328s it should work out fine. Happy tinkering 🙂 Any ambitions for a future "Minimal 64" build? ;-)

    • @colonelbarker
      @colonelbarker Рік тому

      @@slu467I've got a whole tube of them here! I followed through the instructions here and got the blinky example working fine on the 16mhz clock but I've had trouble with the 24mhz crystal. I've made an active one with a 74HC04 and some passive and am hoping that will work out better.
      I was thinking about making the new Minimal but thought I'd wait in case you revised it again, I've now got two of them here. I'm currently working on a ZX80/81 clone that's been quite a lot of trouble!

    • @colonelbarker
      @colonelbarker Рік тому

      @@slu467 If I am using an active oscillator for the input of bob would I need to change the fuse bits on bob to expect an active signal for it to work? I've assembled the whole thing, I can load Blinky but none of the functionality works after I upload the code to the pair, no VGA, no seral data. I've checked on the scope and there are no video signals coming out of Bob, but I *am* getting the 24mhz signal out of pin 14 of bob.

    • @slu467
      @slu467  Рік тому

      @@colonelbarker It might be good to make sure that each µC receives it's program correctly (via 16MHz I guess) and *runs* it's code corretly, too, at a higher rate. I'd test that procedure with some "dummy" blinkenlights code. The fuse bits need to match the oscillator setup you intend to use. But keep in mind that all this is using the AtMega *out of spec*. I might just have been lucky with my production run. Never had any problems though... good luck!

  • @HonzaHadrbolec
    @HonzaHadrbolec 2 роки тому

    Hello, that's great guide, but I have a problem. Burning of bootloader seems be ok but control LED doesn't glow for me. I have checked wiring even tried another Atmega 328P. I doun't know where could be problem :'(

    • @slu467
      @slu467  2 роки тому

      Hm, difficult to help here from afar. I assume you do not have a digital scope at hand to really take a look at the signals... polarity of the LED is okay, too?

  • @rsbohn
    @rsbohn 6 місяців тому

    Very nice.

  • @carlosalbertomartinezmaldo3745

    Splendid!! One Question. It's possible to make a color terminal?

    • @slu467
      @slu467  Рік тому

      Hi Carlos,
      well, I have the strong feeling that the ATMega is pretty much at its limit here. One would have to sacrifice resolution for color. If you really want more features it may be time for a more powerful µC.

    • @johnm2012
      @johnm2012 Рік тому

      It's actually very easy to make a colour terminal with the much more powerful ESP32 module and the FabGL library. You can program it using the Arduino IDE if you add them using the Board Manager and Library Manager, respectively. There's even a sketch called ANSI Terminal in the Examples folder that works without modification. There are pre-built boards available cheaply that combine an ESP32, a VGA socket and a pair of PS/2 connectors for keyboard and mouse. You can connect "logic level RS232" signals directly to it or add a MAX3232 board for true 9-pin RS232 compatibility. Search for "ESP32 VGA" and "FabGL".

  • @SnakeByte69
    @SnakeByte69 3 роки тому +2

    How hard is it to make it 80x25 Characters?

    • @slu467
      @slu467  3 роки тому

      Well, for me it's impossible on the ATmega328. Be sure, I would have done the 80 x 25 if I saw a way... hopefully someone out there proves me wrong ;-)

  • @rabybanz4381
    @rabybanz4381 2 роки тому +1

    Hi Sir! Wow! Do you sell a ready to use unit? if yes, how much? Thank you for any information....

    • @slu467
      @slu467  2 роки тому

      Thanks for tuning in. This is a free DIY project. I do not plan on selling any of this. However, the design is so minimal that it is very easy and reliable to build on a breadboard. Cheers!

  • @arkanjo7509
    @arkanjo7509 3 роки тому +1

    very cool

    • @slu467
      @slu467  3 роки тому

      Glad you like my videos!

  • @billysallerlei
    @billysallerlei 6 місяців тому

    thats what I'm searching for..... not the "serial terminal", no it is the process to get sketches into an 328P without an UNO board....
    Until now I put an 328 DIP in the UNO Board an programming it to run it in alone the free world.
    Now I can design my own board with an 328 TQFP soldered on it an programming it with arduino sketches. Thanks.

  • @vanhetgoor
    @vanhetgoor 2 роки тому

    Only three chips!
    Are you aware of how much processing power a bare bone Arduino has? It is capable of doing all the work the flight control computer had to do during the MOONLANDING and singing Daisy Daisy at the same time.

    • @slu467
      @slu467  2 роки тому +1

      Hi vanhetgoor, I absolutely wasn't aware of that. Thanks for pointing me to a new and fascinating project :-) Cheers!

  • @lixgueza-cx6tl
    @lixgueza-cx6tl 7 місяців тому

    awesome

  • @videocommenter235
    @videocommenter235 2 роки тому +1

    Wonder if you can hook this to a linux box.

    • @slu467
      @slu467  2 роки тому

      You can hook this up to any serial device.

  • @kamilgrodzki1960
    @kamilgrodzki1960 Місяць тому

    Did you try to connect to linux with it?

  • @ajinkyamahajan102
    @ajinkyamahajan102 3 роки тому +1

    This is my next project

    • @slu467
      @slu467  3 роки тому

      Glad I got you hooked :-) let me know how it goes...

  • @bpptheo9966
    @bpptheo9966 3 роки тому +1

    Can you eventual Show how to build an VGA or HDMI Capture Card. Which capture VGA Input Into USB -- so that you could Capture it via Python Into an PNG? That would bei realy cool ^^

    • @slu467
      @slu467  3 роки тому

      Hi there,
      for the moment that would be a bit off-track for me ;-)

  • @rjameslower
    @rjameslower 3 роки тому

    How the connections was made? I mean the atmegas does not use spi or i2c for data transfer

    • @slu467
      @slu467  3 роки тому

      Hi James, just a plain parallel bus and a "new data" toggle.

  • @maximjacquet2942
    @maximjacquet2942 2 роки тому

    Is there a way to make this work using composite video?

    • @slu467
      @slu467  2 роки тому

      Hi Maxim, composite is a little easier to implement (slower timing). Search for 'Grant Searle' terminal. Cheers!

    • @maximjacquet2942
      @maximjacquet2942 2 роки тому +1

      Thanks!

  • @salahbouzid477
    @salahbouzid477 3 роки тому

    HI sir think you so mutch please sir can you build or make the vga monitor work as screen scrolling display a like 8x8 led matrix or dmd p10

  • @henrybooks7193
    @henrybooks7193 3 роки тому

    Hello! I have just made this on breadboards and I was just wondering because every time I try to use it, the only character that will show is @ symbols instead of the character I want to type. I was wondering if you had this issue while building? and if so what you did to solve it. thanks!

    • @henrybooks7193
      @henrybooks7193 3 роки тому

      also, if it matters at all, I am using a 74HC165 instead of a 74HC166. although i used this on your minimal vga project and it seemed to work fine. I also do not have a ps2 keyboard so I am just using PuTTY as a serial terminal. I was thinking it might be my baud rate, so on my speed select I tied both my pins to ground. I was assuming this meant it was running at 28800 baud but i might be wrong as i could not find a key anywhere telling what the different baud rate selections were. And one more thing, sorry when i try to connect the B microprocessor RX / TX lines the screen goes crazy and wont show a stable picture. Thank you! i know that was a lot.

    • @slu467
      @slu467  3 роки тому

      Did you have the TR0-TR7 lines installed properly? They do not show up as "lines" on the schematic but their connection is indicated by the labels. You are talking about the loop back test, right?

    • @henrybooks7193
      @henrybooks7193 3 роки тому

      @@slu467 thank you so much! I did not realize there was lines right there. I hooked it up and I got it to sort of work, it puts a stable picture and shows a blinking cursor. sometimes when i turn it on it will work fine and other times it wont. also, when i connect the RX / TX lines to Bob it makes the screen go crazy. and since i do not have a ps2 keyboard i have those lines tied to ground and i am using PuTTY as a serial terminal program on my computer.

    • @henrybooks7193
      @henrybooks7193 3 роки тому

      I also have both my baud rate select lines tied to ground and i think that means it is at 28800 baud? But that could be a problem

    • @slu467
      @slu467  3 роки тому +1

      Henry, this build is so critical that I recommend you do not change *anything* at all. You cannot expect the circuit to work properly when using different ICs. I have chose the the 74HC166 for a reason. You are right about the Baudrate but I have no idea what you are doing with the RX/TX lines. They are *only* for in-situ programming of the Arduino B. Do not use them for anything else. Good luck!

  • @derekchristenson5711
    @derekchristenson5711 2 роки тому

    Very cool! Way too fast for most of what I'd use it for, but I'll have to look at the code (and Mr. Baffa's adaptation) just the same. 🙂

  • @rjameslower
    @rjameslower 3 роки тому

    The fuses was changed... But why?

    • @slu467
      @slu467  3 роки тому

      for the shift register's clock... and to save a crystal along the way...

    • @rjameslower
      @rjameslower 3 роки тому

      @@slu467 thanks I am a noob

  • @stephenwong9723
    @stephenwong9723 3 роки тому

    Why not 80x25?

    • @slu467
      @slu467  3 роки тому

      Hi Stephen, the already heavily overclocked ATmega328 can't pump it out fast enough within the VGA timing.

    • @stephenwong9723
      @stephenwong9723 3 роки тому

      @@slu467 Ok, perhaps an STM32 or RP2040 (say Raspberry Pi Pico) will be capable to do 80x25 VT100 emulation, right?

    • @slu467
      @slu467  3 роки тому

      @@stephenwong9723 I am thinking Pi Pico, too. Actually, it is pure madness to try and implement VGA on an ATmega328 ;-)

    • @stephenwong9723
      @stephenwong9723 3 роки тому

      @@slu467 True, Video signaling is too too much for an ATmega328.

  • @genjii931
    @genjii931 3 роки тому

    Poor overworked Bob.

    • @slu467
      @slu467  3 роки тому

      Jep, Alice has got the easier job...

  • @igfoobar
    @igfoobar Місяць тому

    I miss real computers.

  • @maximjacquet2942
    @maximjacquet2942 2 роки тому +1

    Hello! As you told me, I am trying to do the terminal from grant searle’s website. I am currently running into some problems when trying to upload code. I never did this and files seem to be in .hex. I was wondering if you could help me in anyway and if you had other platforms we could communicate other than UA-cam comments. (By the way I subscribed!!)

    • @slu467
      @slu467  2 роки тому

      Hi Maxim, I've never used Grant's code for composite video and can't be of any help with that, I'm afraid. Just explore it slowly step by step... cheers!

    • @maximjacquet2942
      @maximjacquet2942 2 роки тому

      Ok thanks anyways but I wanted you to know I really like your videos. If this ends up not working I’ll make your design as I am sure it works!