Тёмный

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

Scrap Computing
Подписаться 2,6 тыс.
Просмотров 24 тыс.
50% 1

We are building a Raspberry Pi Pico based ISA card and we configure it to work as a USB mouse interface card, using a modified version of the CuteMouse DOS driver.
ISA Blaster PCB: github.com/scrapcomputing/ISA...
DirtyRat Firmware: github.com/scrapcomputing/Dir...
DirtyRat Mouse Driver: github.com/scrapcomputing/Dir...
CuteMouse DOS Mouse driver: cutemouse.sourceforge.net/
DOS Mouse Protocols: github.com/davidebreso/ctmous...
ISA Bus image by Appaloosa (Creative Commons): commons.wikimedia.org/wiki/Fi...
8250 UART: en.wikipedia.org/wiki/8250_UART
Serial programming: en.wikibooks.org/wiki/Serial_...
CuteMouse DOS Driver: cutemouse.sourceforge.net/
ISA I/O Read Timing Diagram: gist.github.com/PhirePhly/220...
Music: Track Stalker from the Duke Duke Dance Party Album
by the Space Quest Historian, Troels Pleimert
spacequesthistorian.bandcamp.com
• "Duke Duke Dance Party...

Наука

Опубликовано:

 

9 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 177   
@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 ?
@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.
@Popclone
@Popclone Год назад
I was hopping for a Sound Blaster Clone 2 in 1 type of ISA :)
@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.
@prozacgodretro
@prozacgodretro Год назад
I have been wondering about this for quite some time. I'm glad somebody took up the challenge.
@alextirrellRI
@alextirrellRI Год назад
Loving this so far!
@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 2 месяца назад
Did you end up with any conclusion about a modern mice on old computers?
@BrassicGamer
@BrassicGamer Год назад
Sir, you are an absolute wizard.
@Vanessaira-Retro
@Vanessaira-Retro Год назад
Really cool. Nice job.
@davidgari3240
@davidgari3240 Год назад
I just watched a crazy person at work. Only thing that bothers me is that I understood every word. Good job!
@yurumi98archive8
@yurumi98archive8 Год назад
Love your voice! Keep up the good work my dude
@ChadDoebelin
@ChadDoebelin Год назад
Awesome project!
@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.
@NaderGator
@NaderGator 3 месяца назад
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 ;)
@brucetungsten5714
@brucetungsten5714 Год назад
Great work!
@sdjhgfkshfswdfhskljh3360
@sdjhgfkshfswdfhskljh3360 Год назад
Nice step towards making fully open sourced computers.
@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.
@Choralone422
@Choralone422 Год назад
DirtyRat, I love it! Great work and I hope you get the LC/RC issue worked out!
@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.
@JG-nm9zk
@JG-nm9zk Год назад
You beat me to it. I was thinking of doing the samething with the pico.
@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.
@laudennn
@laudennn Год назад
thanks for the video!
@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.
@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.
@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)
@thebiggerbyte5991
@thebiggerbyte5991 Год назад
Excellent!
@SB-qm5wg
@SB-qm5wg Год назад
Cool video.
@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
@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
@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
@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. :)
@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.
@summerlaverdure
@summerlaverdure Год назад
this is cool! ^O^
@tropicalretro
@tropicalretro Год назад
Amazing! I wish I had that understanding! I just drool over projects like this waiting them to be available!
@VladiFx
@VladiFx Год назад
cool project man! I like it! What aboute buld an ardiono on an isa card? For cpu fan controlling for ex?
@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.
@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.
@GadgetUK164
@GadgetUK164 Год назад
This is fantastic! I wonder if it could be adapter to provide EMS memory - that would be incredibly useful!
@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 😀
@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.
@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. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-MQR2LxR7VdM.html
@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).
@Cerber4444
@Cerber4444 5 месяцев назад
Can it be used as VGA ISA video card?
@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 :)
@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 :)
@OriginalJetForMe
@OriginalJetForMe Год назад
This would be a good FPGA project.
@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.
@tulsatrash
@tulsatrash 7 месяцев назад
What are the identification codes on the integrated circuits he used?
@scrap_computing
@scrap_computing 4 месяца назад
They are TXS0108EPW bidirectional level-shifters 3.3V/5V.
@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 :)
@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!
@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 :)
@hackbuildrestore
@hackbuildrestore 10 месяцев назад
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 10 месяцев назад
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.
@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
@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.
@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.
@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.
@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.
@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.
@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.
@andr27
@andr27 Год назад
is it your natural voice or prepared for this video?
@MadsonOnTheWeb
@MadsonOnTheWeb Год назад
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.
@MadsonOnTheWeb
@MadsonOnTheWeb Год назад
@@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.
@MadsonOnTheWeb
@MadsonOnTheWeb Год назад
I found this. Just to have some idea ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-mNs1JePWvmg.html
@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.
@pik33100
@pik33100 Год назад
Now, make an ISA host using Pico as a CPU with a 386 emulator :)
@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.
@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.
@o0Donuts0o
@o0Donuts0o 9 месяцев назад
Kermit the Frog does electronics.
@sthen622
@sthen622 9 месяцев назад
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 3 месяца назад
It's a remix of the first level music from Duke Nukem 3D from 1996. The track is called Stalker.
@y_x2
@y_x2 2 месяца назад
You need some simple hardware between ISA bus and PICO I/O.
@ljrretropcs
@ljrretropcs Год назад
Wow..
@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.
@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.
@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...
@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
@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?
@user-ju2yl6bz9y
@user-ju2yl6bz9y 2 месяца назад
Почему не на ардуино, она же медленней, что она с мышкой не справится?
@scrap_computing
@scrap_computing 2 месяца назад
Yeah the Pico is better at this because of the PIOs.
@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.
@AdaptiveSystems
@AdaptiveSystems 2 месяца назад
always wondered what happened to ernie from sesame street
@chrisbirch2002
@chrisbirch2002 2 месяца назад
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.
@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 :)
@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
@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.
@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.
@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 :)
@TheIndustrialphreak
@TheIndustrialphreak Год назад
Emulate a multicore 386
@mr0liam
@mr0liam Месяц назад
why do you sound like kermit the frog
@tehrobotjesus
@tehrobotjesus Год назад
Sounds like Junior Addleburg from home movies
@midixiewrecked7011
@midixiewrecked7011 Год назад
Why does he sound like that??😅
Далее
VGA from an EPROM, is it possible.
15:04
Просмотров 53 тыс.
This 8-bit ISA to USB Adapter Card for Vintage PCs
17:13
Turning a Raspberry Pi Pico into a GPU!
16:42
Просмотров 104 тыс.
Sound Blaster Emulator for DOS
10:59
Просмотров 22 тыс.
The PicoGUS: An ingenious multifunction ISA sound card
35:27
Battle of the Zeros
19:44
Просмотров 49 тыс.
A Tiny (Real) Intel 486 Built From Scratch
18:55
Просмотров 140 тыс.
GPIO for any PC or Laptop: Adafruit FT232H
19:18
Просмотров 197 тыс.