ISA Blaster: A software-defined ISA card based on a Raspberry Pi Pico (Part 1)

  Рет қаралды 25,215

Scrap Computing

Scrap Computing

Күн бұрын

Пікірлер: 178
@Popclone
@Popclone Жыл бұрын
I was hopping for a Sound Blaster Clone 2 in 1 type of ISA :)
@necro_ware
@necro_ware Жыл бұрын
Very nice project. I played with Pico Pi on my XT prototyping board a year ago, but it turned out to be too slow to use it directly to ready from the bus, I ended up with programmable logic ICs which can be setup by the Pico Pi to react on particular combinations and only send an interrupt to the Pico Pi. That works much better, but I never came over a very rough prototype though. Such project needs a lot of time, so great job!
@jnelson4765
@jnelson4765 Жыл бұрын
I've got a couple of Sipeed Tang Nano FPGA devices coming to use for exactly that - bus interfacing. Bit banging an ISA bus is even more challenging than the Apple II stuff I'm playing with, so I'm not going to even try.
@scrap_computing
@scrap_computing Жыл бұрын
Yeah interfacing with the bus purely in software is probably too slow, it might work with a slower bus though, I should give it a try.
@alexloktionoff6833
@alexloktionoff6833 Жыл бұрын
@@scrap_computing RPiPico has programable IO co-processors, 8MHz for them is possible.
@ianpolpo
@ianpolpo Жыл бұрын
With PIO, overclocking the Pico, and raising IOCHRDY when it’s not possible to process a bus event in time, it’s possible to keep up with an 8MHz ISA bus.
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
It is possible.
@DiThi
@DiThi Жыл бұрын
I thought you chose the pico because of the PIOs, which is *the* reason I would choose it myself. You can just put the bits in the PIOs' FIFOs and shift them out as soon as they detect a read, or something like that. You can do that from Python, no need to compile anything.
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
Send the data even before the @ is decoded ?
@davidgari3240
@davidgari3240 Жыл бұрын
I just watched a crazy person at work. Only thing that bothers me is that I understood every word. Good job!
@SyphistPrime
@SyphistPrime Жыл бұрын
What an interesting project. I hope you'll find other cool uses for it in the future, there's so many possibilities with interacting with an ISA bus in software.
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Жыл бұрын
Nice step towards making fully open sourced computers.
@BrassicGamer
@BrassicGamer Жыл бұрын
Sir, you are an absolute wizard.
@SlideRSB
@SlideRSB Жыл бұрын
You made yourself a bus mouse. I remember having one of those on an old IBM PCXT compatible. It came with it's own ISA interface card which was good because the serial port was occupied by an external modem.
@yurumi98archive8
@yurumi98archive8 Жыл бұрын
Love your voice! Keep up the good work my dude
@prozacgodretro
@prozacgodretro Жыл бұрын
I have been wondering about this for quite some time. I'm glad somebody took up the challenge.
@channelkerr
@channelkerr Жыл бұрын
Very cool, I've spent way too long browsing vogons looking for a good solution for modern mice on old hardware. Looks real promising. The possibilities are interesting, WIFI/LAN, USB, MPEG Decoder, XT-IDE boot ROM, RAM, sound. Love it!
@zzgus
@zzgus 6 ай бұрын
Did you end up with any conclusion about a modern mice on old computers?
@helmutzollner5496
@helmutzollner5496 Жыл бұрын
Well done! Great little project. Unfortunately, I have no ISA bus machine any longer. However, I can see the necessity for this device to keep the old software usable.
@duncanstyles133
@duncanstyles133 Жыл бұрын
Hi, your ISA Blaster is one of the stories we cover on the next episode of This Week In Retro. Could we have permission to show some parts of your video please? We won't use the audio and you will of course be credited with a link.
@scrap_computing
@scrap_computing Жыл бұрын
Of course! Feel free to use any part of the video! I love your show btw. Keep up the great work!
@duncanstyles133
@duncanstyles133 Жыл бұрын
@@scrap_computing Thanks very much. :)
@Darkstar2342
@Darkstar2342 Жыл бұрын
That looks awesome! However, if you intend to move the board around a lot (for debugging etc.), I would suggest using a beveled edge and hard gold plating
@morantaylor
@morantaylor Жыл бұрын
Could you use a wifi version to emulate an ISA network card?
@rhuwyn
@rhuwyn Жыл бұрын
This would be awesome!
@scrap_computing
@scrap_computing Жыл бұрын
Yeah that would be really cool! It will probably not work with the stock driver though, but if there is an open source one that we can hack, it might actually work!
@alexloktionoff6833
@alexloktionoff6833 Жыл бұрын
It's possibe to interface RPico directly to Rj45 via resistors, looks like NE2000 emulation is feasible.
@cptcrogge
@cptcrogge Жыл бұрын
Great idea, I believe that we can replace most of the ISA cards with devices like the Pi Pico
@scrap_computing
@scrap_computing Жыл бұрын
If the Pico was powerful enough we would probably be able to emulate multiple ISA cards simultaneously :)
@cptcrogge
@cptcrogge Жыл бұрын
@@scrap_computing That would be amazing. I dream of the day when we can emulate an ATI MACH64 ISA clone :)
@tschak909
@tschak909 Жыл бұрын
@@scrap_computing the secret to the RP2040's power is in the PIO macroblocks. learn them.
@JG-nm9zk
@JG-nm9zk Жыл бұрын
You beat me to it. I was thinking of doing the samething with the pico.
@Choralone422
@Choralone422 Жыл бұрын
DirtyRat, I love it! Great work and I hope you get the LC/RC issue worked out!
@rhuwyn
@rhuwyn Жыл бұрын
This is amazing. Cant wait to see more. A couple ideas. I have no idea how feasible some of these would be. 1) emulate a boot rom that could load boot ROM images something like XTIDE. 2) anoter person already said a wifi version to provide network connectivity. 3) USB storage? 4) and of course....it would be so awesome if it could do some sort of sound emulation. This moght not be possible for thr picos cpu but i figures id throw itmout there.
@dh2032
@dh2032 Жыл бұрын
usbif USB could conected to USB HUB, like being able to plug one than one USB thing in at a time, ISA connects to even more on the computer than LATER PCI, so it show be posable to almost take over the hole running of the system calls, enulate anything that existed as ISA card, and and what even connected to that card, and depending on how card working It may also be posable emulate more than one card at a time, or many if its posable, it would be interesting to see if you could get two of the USB blaster PICO card talking, to one communicating with a second one hosted on the same PC, to do a task? really wild Idea would content up modern display screen HDMI, DVI ,or even new standard, or some of the remote stream to remote screen stuff?
@scrap_computing
@scrap_computing Жыл бұрын
Yeah these are great ideas, I will try to look into some of them, thanks!
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
I already did it : ROM, RAM, EMS, Floppy, Disk
@jnharton
@jnharton Жыл бұрын
It would be a waste of a Pi Pico to "emulate a boot ROM" using a bit banging approach. You can also use almost any microcontroller with enough gpio pins to build a ROM emulator by substituting an SRAM chip or some sort of Flash chip for whwy would originally have been a parallel EPROM or Mask ROM (sometimes referred to as MROM) ROM. Basically the microcontroller facilitates writing some code to the memory chip and then the machine boots directly from the memory chip. It's a little more complex to build than it sounds, but the basic idea is fairly simple.
@jnharton
@jnharton Жыл бұрын
The trick with sound devices is that they all worked a little differently. There was no universal standard as is more common these days. Various trade-offs between needing more RAM/ROM (memory), more CPU involvement, or additional sound hardware led to a bunch of different designs.
@kippie80
@kippie80 Жыл бұрын
Are you using PIO features? Use those. Others have been able to emulate video cards on an Apple II bus with use of PIO.
@scrap_computing
@scrap_computing Жыл бұрын
I am not currently using PIO, though I could use it for offloading the IRQ signal which would remove some overhead from the polling loop. But the main issue is the tight timing for some of the bus signals, like IOR, which I think has to be done in software.
@kippie80
@kippie80 Жыл бұрын
@@scrap_computing you can use DMA to dump 32bits to pio/pick up 32 bits and have it respond to or trigger Irqs no CPU needed.
@burtonrodman
@burtonrodman Жыл бұрын
i think PIO is much more powerful than you are imagining. as mentioned some have emulated a VGA signal and I have used it to run 8 I2c buses in addition to the 2 hardware i2c to drive 10 OLED displays
@root42
@root42 Жыл бұрын
@@scrap_computingask Ian Scott. He ran into similar issues in the PicoGUS.
@paulwratt
@paulwratt Жыл бұрын
Thanks for doing this .. now I can build a PicoPC with _all_ RPi Pico substitues for various parts of x86 PC (including the CPU)
@ichemnutcracker
@ichemnutcracker Жыл бұрын
Nice work, as always! However, won't it be limiting to have access to only the lowest 4kB or RAM (12 address bits)? If you are already putting the level shifters on the board, how much could it hurt to add an extra latch/shift register and bang it with one of the PIO state machines to get access to the full address space?
@scrap_computing
@scrap_computing Жыл бұрын
For pure I/O addressing 12bits should be all right under DOS, but yeah adding some logic would probably also solve some of the timing issues too.
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
I did a full I/O and memory Pi Pico board already 😀
@Mueller3D
@Mueller3D Жыл бұрын
I'm also looking at using a Pi Pico to emulate devices for 8-bit micros. Using 74LVC245 chips not only takes care of level shifting, but also multiplexing, allowing you to connect both the data bus and the hi/lo parts of the address bus to the same pins on the Pico (using just one extra control line for each set of 8 lines). The Pico should be fast enough to handle back-to-back transactions if you allow for it in the software design. That is, check for the second right after handling the signals for the first (instead of treating them separately). Note that if you run out of GPIOs, there are RP2040 boards that bring out all 30 GPIOs the chip has to offer. Also, if you check out the "Hardware Design with the RP2040" document, you can see about VGA and audio output using the Pico.
@VladiFx
@VladiFx Жыл бұрын
cool project man! I like it! What aboute buld an ardiono on an isa card? For cpu fan controlling for ex?
@stephenwhite506
@stephenwhite506 Жыл бұрын
Your connection between the USB mini and the larger USB A could be the problem. The signal is a differential one and ideally the wires should be impedance matched. Try making the wires as small as possible. Perhaps twisted pair wrapped with a ground.
@scrap_computing
@scrap_computing Жыл бұрын
The data received by the Pico looks right, but anyway good to know :)
@GadgetUK164
@GadgetUK164 Жыл бұрын
This is fantastic! I wonder if it could be adapter to provide EMS memory - that would be incredibly useful!
@hackbuildrestore
@hackbuildrestore Жыл бұрын
Hi I loved the concept of this and it has given me an idea, I have an issue with using Diag ROMs on a 5170, they only work with a CGA or MGA 8bit card, the CGA card I have is not working and finding an easy way to view output from CGA would be amazing... My thought was not even initially providing output to display but pushing the raw text output from the CGA card emulation to the serial connection! This may be a nice initial step to get some output? and add DVI out later... Do you think this is possible, or am I mad? would really value your thoughts :) Keep on Blasting :)
@scrap_computing
@scrap_computing Жыл бұрын
This is a great idea! I think it might be possible to get it to work as a simple display card. A tricky part would be to make the Pico behave like a CGA/MGA card during the initialization so that the BIOS thinks that it talks to an actual display card. I am mostly worried about the timings, and whether the Pico is fast enough to respond in time. The 5170 should have a slow enough ISA bus though, so yeah, it might work.
@janpedersen9120
@janpedersen9120 Жыл бұрын
Very promising, nice video clearly upcoming youtube star.. really going all in, and im loving my seat here watching ;) thanks a lot for doing these very interesting things and share with us.
@tigheklory
@tigheklory Жыл бұрын
Do you need something similar to a debounce for the multiple clicks?
@scrap_computing
@scrap_computing Жыл бұрын
It does not seem to be a bouncing issue, the Pico is reading the data fine.
@alextirrellRI
@alextirrellRI Жыл бұрын
Loving this so far!
@OriginalJetForMe
@OriginalJetForMe Жыл бұрын
This would be a good FPGA project.
@squirlmy
@squirlmy 2 ай бұрын
nobody who isn't already into FPGA seems to understand this. :( If it weren't for covid, I think FPGA cards would be the "new Raspberry Pis", but they've been held back to only MiSTer and the Nano-DE10, which is a shame. I'm working with old Papilios, and their pretty cool, but not cool enough to survive commercially. 😭
@Vanessaira-Retro
@Vanessaira-Retro Жыл бұрын
Really cool. Nice job.
@rupertmartin8131
@rupertmartin8131 Жыл бұрын
Looks like you know your onions, however, I completely misinterpreted the heading and thought this was a software-defined SoundBlaster ISA card! Maybe I'm not the only one.
@scrap_computing
@scrap_computing Жыл бұрын
Ha ha true :)
@Pickle136
@Pickle136 Жыл бұрын
check out the picogus
@TheIndustrialphreak
@TheIndustrialphreak Жыл бұрын
Be cool to use this concept for a ISA parasitic processor "ISA CPU BLASTER" to accelerate renders like the old commodore 64 accelerators.
@tropicalretro
@tropicalretro Жыл бұрын
Amazing! I wish I had that understanding! I just drool over projects like this waiting them to be available!
@detalite
@detalite Жыл бұрын
I read that RP Pico can be overclocked up to 400 MHz. Main problem is that onboard QSPI flash memory is specified to work with 133 MHz (but it often work with 300 MHz), but that bus can be divided accordingly to work stable witch 400 Mhz cpu core. There are some videos about it on Robin Grosset YT channel.
@scrap_computing
@scrap_computing Жыл бұрын
Thanks, I will check them out. We may need some serious overclocking if we are to get this to interface properly with the ISA bus purely in software :)
@sthen622
@sthen622 Жыл бұрын
Awesome idea - I love the project!👍 Also I like the background soundtrack that is fully audible from 2:30 until ~4:10. Can you tell me the title of the track and name of the artist ? Thanks - and keep up the great work!
@HelgiWaag
@HelgiWaag 6 ай бұрын
It's a remix of the first level music from Duke Nukem 3D from 1996. The track is called Stalker.
@ChrisR3tro
@ChrisR3tro Жыл бұрын
Interesting. I especially liked that you adapted CuteMouse so you can leave out the UART emulation. Do you know at what rate (hz) your pointer updates at max? I believe for serial it was around 40 hz under DOS. Some bus mice could update faster.
@scrap_computing
@scrap_computing Жыл бұрын
I am not sure about the sampling rate. Most serial mice work at 1200 baud (150 bytes/s) and for each mouse movement there are usually 3 bytes (some use 4), so in theory you should be able to get 150/3 = 50 samples per second? With the ISA Blaster you can configure the sample rate from the USB in the Pico firmware, but I have not actually measured how high it can go. That would be very interesting to measure, thanks!
@CalamityLime
@CalamityLime Жыл бұрын
@@scrap_computing 40hz for 7n2, 44hz for 7n1. That's the spec it seems, even then i feel like 7n1 is a hack that just works.
@ruthlessadmin
@ruthlessadmin Жыл бұрын
Wow, really cool project! I've thought about trying to use an FPGA for something like this. Would certainly eliminate any performance bottlenecks but maybe a steeper learning curve.
@scrap_computing
@scrap_computing Жыл бұрын
Yeah using additional logic makes sense, and is probably the best option. But I was mainly interested in exploring what can be done with a purely software approach. Perhaps some of the timing issues may be solved with clever use of Pico's PIO engines.
@babbaloerie
@babbaloerie Жыл бұрын
I have been looking to do something similar but with PCI and a regular Raspberry Pi. I figured I could have the Pi pretend to be a 3dfx Voodoo, and have the Pi's GPU do the rendering. But it turns out I'm nowhere near smart enough for something like that 😅
@timhartherz5652
@timhartherz5652 Жыл бұрын
Somebody run a PCI and a PCIe GPU of an Arduino and compared it with a typical minicomputer GPU, turns out the mini GPU is actually quiet weak and a stronger one is limited by the CPU of the minicomputer. I'm afraid a rhasberry still can't quite emulate the performance of an actual voodo card. kzbin.info/www/bejne/g4K1Y3-uh5yJmq8
@scrap_computing
@scrap_computing Жыл бұрын
That would be really interesting, though I would start with something simpler, like emulating a VGA ISA card.
@jnharton
@jnharton Жыл бұрын
That's an Arduino-compatible board, but it's based around a Vortex86 family SoC which incorporates a processor that is essentially equivalent to an Intel '486. Presumably that SoC also has the necessary hardware logic to interface PCI cards already and he's just interfacing to a PCIe card over PCI (PCI and PCIe x1 are intentionally compatible with a bit of extra interface hardware).
@laudennn
@laudennn Жыл бұрын
thanks for the video!
@o0Donuts0o
@o0Donuts0o Жыл бұрын
Kermit the Frog does electronics.
@brucetungsten5714
@brucetungsten5714 Жыл бұрын
Great work!
@SeeJayPlayGames
@SeeJayPlayGames Жыл бұрын
why emulate a UART to get a serial mouse working? Why not set it up as a bus mouse?
@scrap_computing
@scrap_computing Жыл бұрын
I would have to look it up, I am not familiar with the interface. But according to wikipeda Cutemouse supports it, so yeah that looks like a good option!
@alexloktionoff6833
@alexloktionoff6833 Жыл бұрын
Are there similarities between PicoGUS and ISA Blaster?
@scrap_computing
@scrap_computing Жыл бұрын
I am not familiar with the PicoGUS, but it definitely looks like a similar project. Though I would assume that the PicoGUS has some proper bus logic for interfacing with the ISA bus. The ISA Blaster is trying to do everything in software :)
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
@@scrap_computing Picogus use only multipler and a logic gate to help with DMA.
@Rudofaux
@Rudofaux Жыл бұрын
Could it be that the multiple clicks are happening because Dirty Rat may not have anti-bounce correction?
@scrap_computing
@scrap_computing Жыл бұрын
I need to check the output of TinyUSB again. Last time I checked I didn't see any obvious key bounce, but I may be wrong. Thanks for the feedback :)
@jediknight2350
@jediknight2350 Жыл бұрын
kermit what happens if you aint got an isa slot lol we need pci converter that makes it dos think its an isa slot work that out.
@scrap_computing
@scrap_computing Жыл бұрын
That would be quite challenging.
@jediknight2350
@jediknight2350 Жыл бұрын
@@scrap_computing thought you like a challenge.
@thebiggerbyte5991
@thebiggerbyte5991 Жыл бұрын
Excellent!
@deterdamel7380
@deterdamel7380 Жыл бұрын
Did you try to utilize the PIO-cores of the Pi Pico improve the timing?
@scrap_computing
@scrap_computing Жыл бұрын
Not yet, but these PIO units sound super interesting. If there is a way to use them to fix some of the timing issues, then that would allow us to emulate all sort of devices.
@ToasterWithFur
@ToasterWithFur Жыл бұрын
@@scrap_computing and they are proven to work fast enough to emulate a dvi video output
@modology
@modology Жыл бұрын
can this be used to emulate MT32 using Pico? or perhaps using Pi Zero W?
@scrap_computing
@scrap_computing Жыл бұрын
I doubt it. These synthesizers are pretty CPU intensive and as far as I know they need at least a Pi Zero 2 W.
@modology
@modology Жыл бұрын
@@scrap_computing i see. I reckon Pi Zero 2 W could be a good option then.
@shaunclarke94
@shaunclarke94 Жыл бұрын
Curiously, why did you opt for through hole resistors when all the other passives were SMD?
@scrap_computing
@scrap_computing Жыл бұрын
I just don't enjoy soldering SMD components, because I am really bad at it, but I think I am getting better :)
@DerMarkus1982
@DerMarkus1982 Жыл бұрын
Regarding that multiple-clicks issue: Is your mouse in good enough condition? The actual button's switch in the mouse might be bouncing slower than the ISA Interrupts are handled (some milliseconds maybe?). But you can examine that with a simple MCU script that just counts all Mouse Status transfer instances and Serial.print() them out - sorry, coming from ArduinoLand here... 😁; plus I don't know what platform you program your Pico in... Maybe rinse the button switch with some Isopropyl Alcohol, Contact Cleaner or WD40 to clean the contact points.
@scrap_computing
@scrap_computing Жыл бұрын
It does not seem to be a bouncing issue. The data read by TinyUSB does not show any bouncing at all. It is probably some software glitch...
@CalamityLime
@CalamityLime Жыл бұрын
Hmm, I wonder how it would cope running at higher baud rates. I am curious as to whats causing the issues with the left and right click. TinyUSB is strange with some mice but that doesnt sound like the case here, probably some lag on the picos side with pumping in the signal if thats the case id imagine you'd get further with a shift register or do what I did and give the second core of the pico the job of sending the mouse data with core 0 getting the mouse data from tinyusb. It helped my project a lot with pumping out data consistently.
@dh2032
@dh2032 Жыл бұрын
it pumping /injecting string 010101, into ISA bus, could just be missing 1 or 0 somewhere, but if that was the case I would also expect the mouse pointer move in large random jumps, and that was not mentioned in the video?
@CalamityLime
@CalamityLime Жыл бұрын
My guess is based on the first packet being malformed since the left and right clicks are the first bits sent. Though it depends on how he implemented getting data from tinyusb.
@scrap_computing
@scrap_computing Жыл бұрын
It is strange. If the bits were wrong then as @dh mentions, we should be getting some erratic mouse movement, which is not the case. Is there a chance that TinyUSB reads the wrong L/R data from the USB mouse?
@CalamityLime
@CalamityLime Жыл бұрын
@@scrap_computing it can depending on the mouse. Not all mice support "boot mode" as tinyusb uses but that's not the case for you. I had issues getting consistent clicks from tinyusb and had to set up essentially a latch that remembered it's previous state. The idea being that the USB mouse refreshed faster than the serial mouse did so you can press and depress before the adapter gets a chance to send the click for the serial mouse
@CalamityLime
@CalamityLime Жыл бұрын
@@scrap_computing i know the code in my project is a mess but i usually comment everything so feel free to check it out. Maybe your answer is in there. Take what you want from it, the point of it is to help people trying to get a mouse working on an old machine after all.
@andr27
@andr27 Жыл бұрын
is it your natural voice or prepared for this video?
@Jay-q3o4w
@Jay-q3o4w 9 ай бұрын
Can it be used as VGA ISA video card?
@lexpee
@lexpee Жыл бұрын
are there no ISA USB cards for sale then? where a USB mouse can simply be plugged in. Just google it and you'll find it.
@JustForFun-dn1gi
@JustForFun-dn1gi Жыл бұрын
how much do they cost ?
@Mueller3D
@Mueller3D Жыл бұрын
The goal isn't connecting a mouse, but rather learning how to interface the Pi Pico to the expansion bus. Just buying a USB card doesn't help you do that.
@lexpee
@lexpee Жыл бұрын
are there no ISA USB cards for sale then? where a USB mouse can simply be plugged in
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
Yes, but nobody did a driver so far, it is complex.
@ivanv754
@ivanv754 Жыл бұрын
Would be nice to have asynchronous access, having a dual port SRAM chip, one side on the ISA bus and one side on the Pi. This would solve your timing issues.
@jnharton
@jnharton Жыл бұрын
You will still need to have some kind of selection and addressing logic though, because the bus is shared. Otherwise your card would behave wonkily if there are any other circuits/cards/? attached to the bus. Also, by using SRAM that way you introduce other complexities.
@SB-qm5wg
@SB-qm5wg Жыл бұрын
Cool video.
@tulsatrash
@tulsatrash 11 ай бұрын
What are the identification codes on the integrated circuits he used?
@scrap_computing
@scrap_computing 7 ай бұрын
They are TXS0108EPW bidirectional level-shifters 3.3V/5V.
@madson-web
@madson-web Жыл бұрын
It would be nice if we could get VGA out from it. Also, could ESP32 work for this purpose or it is all on RP PIO to make it work?
@scrap_computing
@scrap_computing Жыл бұрын
Yeah that would be great! I am not using PIO at the moment, but it may help offload some of the signal logic. The ESP32 might work too, though I am not sure how fast it is compared to the Pico.
@madson-web
@madson-web Жыл бұрын
@@scrap_computing So, ESP32 is faster and it has wifi and bluetooth, could be useful. You can also use VGA without any resistors, albeit with few colors. It doesn't has the PIO though.
@madson-web
@madson-web Жыл бұрын
I found this. Just to have some idea kzbin.info/www/bejne/o3_WYn2bhbypo8k
@AladimBR
@AladimBR Жыл бұрын
Can we emulate a sound card in such project? That would be very nice. It might require a better Pi hardware, but imagine being able to emulate those hard to find and now expensive cards
@scrap_computing
@scrap_computing Жыл бұрын
Yeah that would be nice. Though I am not sure how we can get good audio quality out of a Pico.
@crtified1001
@crtified1001 Жыл бұрын
Are you familiar with the PicoGUS project?
@DouglasWalrath
@DouglasWalrath Жыл бұрын
you may have already done this (if so ignore me) but you could've probably solved the speed issue by using the pico's programmable I/O to handle the UART emulation and have the CPU just feed the mouse data to the programmable I/O
@scrap_computing
@scrap_computing Жыл бұрын
Yeah, there should be some way to get the timings right with some coding tricks, offloading some of the work to either the second core or the PIOs.
@DouglasWalrath
@DouglasWalrath Жыл бұрын
@@scrap_computing the PIO would be better since they have direct access to the GPIO and can thus respond way faster
@summerlaverdure
@summerlaverdure Жыл бұрын
this is cool! ^O^
@y_x2
@y_x2 6 ай бұрын
You need some simple hardware between ISA bus and PICO I/O.
@chrisbirch2002
@chrisbirch2002 5 ай бұрын
is this your natural voice sir? i mean nothing negative but you sound a bit like kermit the frog. guess it ain't easy bein green.
@NaderGator
@NaderGator 7 ай бұрын
ISA cards still exist, but (modern) motherboards with ISA slots are hard to find. A better project would have been an ISA adapter to PCI bus using Pico, emulating a soundblaster ;)
@Megatog615
@Megatog615 Жыл бұрын
hmm i wonder if this could be expanded to make a VGA card for HDMI use on retro computers
@Megatog615
@Megatog615 Жыл бұрын
i looked into similar projects for the pico and it appears that there is at least one DVI output(over HDMI) project for the pico so I'm not crazy 😂
@scrap_computing
@scrap_computing Жыл бұрын
Yeah, though a more powerful Pi, like the Pi 4 would probably be a better choice for such CPU demanding projects :)
@Megatog615
@Megatog615 Жыл бұрын
@@scrap_computing yeah in the time since I made this comment I had an idea come to mind where one would use a pi zero W to essentially replace every single expansion card at once, supplying sound, video, networking, serial, storage, etc. A single board with a zero W or a compute module installed with headers leading to ISA brackets. Emulating all the cards at once. In my LPX form factor 486 machine this would replace the ISA riser card entirely.
@Pickle136
@Pickle136 Жыл бұрын
did you look into supporting ps2 at all?
@scrap_computing
@scrap_computing Жыл бұрын
It shouldn't be too hard to support, but the board would need to be redesigned.
@jercos
@jercos Жыл бұрын
I love the minimalism, but the cost of that approach is the PIOs have to lose much of their potential. They're fast enough to drive multiplexing and demultiplexing, and still not need individual registers implementing the interface of the card on the bus, as long as they're free to switch between functionalities. With that in mind, I think it's appropriate to add some logic to the design while keeping with the software-driven approach. - Output registers e.g. 74*273 avoid stalling PIO or CPU on ISA timing, the data can be clocked in while the register is already enabled, and each flip-flop only ever needs to drive one output. - The data output enable can be triggered by ISA read signals, and CPU code writing out data can drive the dedicated pins ASAP (be it early, or up to the moment data is sampled). A chip or two of NANDs should be plenty for this purpose. - You can side-set an output from PIO for "selected" in your address decoder, primarily for the output enable, but also use this to set CHRDY automatically with one or two flip-flops. Wait states are not ideal, but better than a miss on the bus. - 8x 74*251 digital multiplexer chips effectively integrate address decoding for 64 lines. This gives access to data and address lines with 12 GPIOs, 8 of which can still drive multiplexed output registers. - A 1:n analog mux can pull down the IRQ of your choice, with the pico enabling the mux to trigger an interrupt, and an output register holding the selected IRQ. This is the same function as an open-collector decoder, but a 1:16 mux is more common than a 4:16 open-collector decoder. All that should free up pins, even if the card was expanded to 16-bit, leaving 8-9 to throw at fun features: - An SD card slot for storage would be sublime. - After that, you have an SPI, two UARTs and two I2Cs, set them free! Breaking out headers for each lets you do whatever: I2C RTC, Temp sensor, Bluetooth module, Second SD card, GPIO expander, etc.
@scrap_computing
@scrap_computing Жыл бұрын
Yeah, that would be really cool for a future revision of the project!
@freddyvretrozone2849
@freddyvretrozone2849 Жыл бұрын
It seems you dont know my picoMEM project
@jercos
@jercos Жыл бұрын
​@@freddyvretrozone2849 I've just read up on it, interesting work, and a bold approach to go right to replacing BIOS and system memory! I hope you're making effective use of the PIO's ability to both time DMA transfers, and control the multiplexers directly. My thoughts on adjusting the interface hardware still apply, moving some control logic (e.g., a CHRDY flip flop, disambiguation for DRAM refresh cycles, DMA cycles) outside the PIO reduces pin count and shrinks the timing-critical portion of the PIOs. I believe that would allow ISA DMA, I/O, and memory with 1-2 SMs.
@Lee_Adamson_OCF
@Lee_Adamson_OCF Жыл бұрын
Switch bounce I bet. I suspect it could be debounced in software, eh? Cool project.
@scrap_computing
@scrap_computing Жыл бұрын
It should be already debounced by the mouse hardware itself. The data received by TinyUSB looks OK as far as I can tell.
@StuffOfSonny
@StuffOfSonny Жыл бұрын
i wonder if some day the bigger ISA cards can be simulated in this way (probably with an SoC with more pins, or an FPGA). Pair this with the dISApointment project (ISA over TPM), and this could potentially open up more general compatibility with legacy computing on modern devices.
@scrap_computing
@scrap_computing Жыл бұрын
It should be possible to emulate quite a few ISA cards using the more powerful Pis. The Pico is almost too slow, so it is an interesting challenge getting it to emulate an ISA card.
@pik33100
@pik33100 Жыл бұрын
Now, make an ISA host using Pico as a CPU with a 386 emulator :)
@maxhijacker
@maxhijacker Жыл бұрын
Just one point regarding soldering, it's better to use a vise-like pcb holder with two sides fixation or just a heatproof flat surface to solder smds. Third hand, in this case, less helpful, especially when liquid flux is used
@scrap_computing
@scrap_computing Жыл бұрын
Yes, I need to get one of those pcb holders :)
@mask-u5v
@mask-u5v 5 ай бұрын
Почему не на ардуино, она же медленней, что она с мышкой не справится?
@scrap_computing
@scrap_computing 5 ай бұрын
Yeah the Pico is better at this because of the PIOs.
@AdaptiveSystems
@AdaptiveSystems 6 ай бұрын
always wondered what happened to ernie from sesame street
@dorinxtg
@dorinxtg Жыл бұрын
Loved the video, but why not a Patreon channel? I would love to contribute monthly few dollars, and I'm sure I'm not the only one
@Shmbler
@Shmbler Жыл бұрын
Next: Implement a custom 8 bit CGA/EGA/VGA card with the Pico ;-)
@scrap_computing
@scrap_computing Жыл бұрын
Haha I am not sure it would be fast enough :) It may be possible to do this in a Pi 4 though, and you would also have native HDMI output !
@Shmbler
@Shmbler Жыл бұрын
@@scrap_computing There are some projects that can do VGA or even DVI by using the Pico's PIO. It probably all depends on how many resources are left for the bus. Would be a nice challenge.
@ljrretropcs
@ljrretropcs Жыл бұрын
Wow..
@CalamityLime
@CalamityLime Жыл бұрын
Oh btw, if I'm able to help just get in contact, id be happy to pass on whatever i know..
@scrap_computing
@scrap_computing Жыл бұрын
Thanks for your offer. I have not spent much time looking into the issue, I will reach out if I get stuck :)
@huohuomod
@huohuomod 5 ай бұрын
why do you sound like kermit the frog
@TheIndustrialphreak
@TheIndustrialphreak Жыл бұрын
Emulate a multicore 386
@tehrobotjesus
@tehrobotjesus Жыл бұрын
Sounds like Junior Addleburg from home movies
@midixiewrecked7011
@midixiewrecked7011 Жыл бұрын
Why does he sound like that??😅
@ChadDoebelin
@ChadDoebelin Жыл бұрын
Awesome project!
@JustForFun-dn1gi
@JustForFun-dn1gi Жыл бұрын
Great stuff thank you .
@JustForFun-dn1gi
@JustForFun-dn1gi Жыл бұрын
Maybe you could incorporate the Voltage Blaster on the isa blaster ? Obviously having a fully working usb mouse is more desirable to me
The PicoMEM is an amazing software defined ISA card
51:22
Adrian's Digital Basement
Рет қаралды 108 М.
REAL 3D brush can draw grass Life Hack #shorts #lifehacks
00:42
MrMaximus
Рет қаралды 11 МЛН
Всё пошло не по плану 😮
00:36
Miracle
Рет қаралды 3,4 МЛН
A new ISA graphics card for less than $5!
26:00
VWestlife
Рет қаралды 77 М.
Sound Blaster Emulator for DOS
10:59
PhilsComputerLab
Рет қаралды 24 М.
MCE Blaster: Pi Pico based MDA/CGA/EGA to VGA adapter (Part 1)
12:46
Scrap Computing
Рет қаралды 4,1 М.
DIY 16MB 30-Pin FPM SIMMs: Supercharge Your Vintage Hardware!
21:54
Bits und Bolts
Рет қаралды 51 М.
VGA from an EPROM, is it possible.
15:04
DrMattRegan
Рет қаралды 54 М.
DOS Games On A Tiny Industrial Motherboard
13:40
TheRasteri
Рет қаралды 168 М.
What is a microcontroller? ft. Raspberry Pi Pico
4:29
Raspberry Pi
Рет қаралды 177 М.
This 8-bit ISA to USB Adapter Card for Vintage PCs
17:13
LGR Blerbs
Рет қаралды 138 М.
USB to ISA Card Surrounded by Issues But Still Works Well
16:39
Tech Tangents
Рет қаралды 109 М.
The PicoGUS 2.0 is the Only DOS Sound Card You Need!
16:06
DOS Storm
Рет қаралды 9 М.