6 ms·
My DIY FPGA board can run Quake II
- sznio 7mo agoDemo: https://www.youtube.com/watch?v=sioLAkNQC_I https://www.youtube.com/watch?v=sioLAkNQC_I
- argulane 7mo agoThat's some mad dedication to go from kicad schematics to running Quake. Very impressive!
- unethicalinfo 7mo agoCool write up, getting initial bill shock from 2 layer to the 4+ layer PCBs is a rite of passage :)
- summa_tech 7mo agoThe next step up is HDI. I knew it was (still) expensive, but I did not realize it was a cost multiplier, not adder :-)
- rasz 7mo agoWent with wrong board house. JLC seems to run 6 layer promo for 2 years now. This board is $36 for 5, $100 gets you 50 pcbs.
- unethicalinfo 7mo agoWhen PCBWay stopped accepting PayPal last month I tried JLC and I have to say, their quality was impressive and the price was a little over half the PCBWay quote. Certainly worth shopping around with your gerbers. Might be an interesting write up comparing quality and price from the leading Chinese fab houses for the same board.
- bluescrn 7mo agoOnly done very small 2-layer boards for hobby projects, but it's crazy that you can get custom PCBs made and shipped from China for <£10 It seemed like it might be coming to an end when PCBWay suddenly had no reasonable payment options, but JLC has been great so far (and I believe PCBWay has credit card payments sorted now?) (Just wish I had far more free time to spend on hobbies, there's so many possibilities with 3D printing, microcontrollers, and custom PCBs now all so readily available)
- jonfs2000 7mo agoI've been ordering from PCBWAY since 2016 for my company. 100s of projects, but now because of PAYPAL issue we are forced to look for other suppliers. JLCPCB is good but not very professional. Cannot order large quantities, specifing the custom panel is bit difficuilt etc.
- markus_zhang 7mo agoThis is very impressive. How did you learn to design a real computer, not the toy ones a lot of people made? I read part 1 and part 2 and looks like you just “thrown in” Ethernet and other stuffs and it was done. Really hope to learn from the process, thanks!
- deleted 7mo ago[deleted]
- nacozarina 7mo agoQuake II had the best fn soundtrack.
- nntwozz 7mo agoYes, check out Radioactive Man (from Two Lone Swordsmen) - Trespasser: https://youtu.be/Zdy9TtInX-c https://youtu.be/Zdy9TtInX-c Lots of Quake II samples.
- npunt 7mo agoSonic Mayhem!
- wowczarek 7mo agoI have the album on my phone. When I get called in to put out a fire and save the day, I like to put on March Of The Stroggs in the car when arriving at the destination. It's a great soundtrack for two reasons - the first one is sweet, wasted youth and the second is it's a great soundtrack.
- skewbone 7mo agoAnd Jer Sypult who made Climb (track 10) who is not in Sonic Mayhem!
- xracy 7mo agoThis is really cool and impressive... but relatedly... Has anyone figured out what the minimum specs for Quake are? I feel like the first thing everyone does with a computer is to determine whether or not it can run quake, and I'm just wondering what the like, most simple computer that could exist is, that could run quake?
- conception 7mo agoThat’s only because everything can run Doom now.
- klodolph 7mo agoYou can find a lot of discussion about what the minimum specs for Quake are. Famously, it needs a decent FPU, and the Pentium was a convenient early CPU with a decent built-in FPU. It was significantly faster than a 486. …But people have managed to run Quake on the 486. And the myth people tell about Quake is that it killed Cyrix, because Quake performance on Cyrix was subpar. But was that true? And if it was true, was that because the Cyrix was slower than a Pentium, or was it because the Quake code had assembly that was hand-optimized for the Pentium FPU pipeline? Anyway. “Most simple computer that could run Quake” is probably going to include a decent FPU. If you are implementing something on an FPGA, you can probably get somewhere around 200 MHz clock anyway. At which point you can run Quake II.
- NooneAtAll3 7mo agocan it be rewritten to use fixed point arithmetic instead?
- UncleOxidant 7mo agoCool! Have you considered offering this board on Crowd Supply or similar? There don't seem to be many boards available for Efinix FPGAs.
- klodolph 7mo agoThe diagonal traces and the empty spaces are throwing me for a loop. Is this the autorouter in action? (But… still, nice work.)
- codebje 7mo agoDDR3 traces need to be length matched, because at 800MHz (the slowest "standard" rate, though I think you can drop to 666MHz safely) the value on the pins is changing every 1.25ns, and having traces of different lengths means you probably won't see the right values on all the pins at the same moment. Length matching produces the squiggles. The diagonal orientation of the DDR3 chip and corresponding diagonal traces I suspect is a choice made by the author to ease the layout process - it's more likely that is hand laid out to get traces of somewhat similar length with a minimum of fuss, followed by a length matching tool. A non-standard orientation can cause issues with pick-and-place machinery, which usually will handle 90 degrees fine, and _often_ 45 degrees fine, but (AFAIK) _rarely_ anything else, but that's not a problem for the author because he's assembling it himself. A diagonal IC also usually results in wasted space, which you can see in the empty areas of the resulting board. A 90 degree orientation may have allowed for a few more decoupling capacitor banks, but since his board works, who am I to sit here and judge?
- imtringued 7mo ago> A non-standard orientation can cause issues with pick-and-place machinery, which usually will handle 90 degrees fine, and _often_ 45 degrees fine This sounds like nonsense. Pick and place machines don't pick up components perfectly deterministically. There is always a tilt and an offset when you are picking the part up, which is why a computer vision system has to account for part orientation and the center of the part. The machine must compensate the error by moving and rotating the part accordingly.
- whiskers 7mo agoPick and place machines can place components very precisely at any angle - they really don’t care!
- ptmikheev 7mo ago
- bee_rider 7mo agoQuake 2 was the one with the clever approximate inverse square root code, right? I wonder (especially since there’s an instruction nowadays to draw inspiration from), can you implement it “in hardware,” so to speak?
- BoredPositron 7mo agoNo that was Q3 Arena.
- shakna 7mo agoIn x86 that would be the SIMD rsqrtps [0]. So absolutely possible to do at the hardware level. [0] https://www.felixcloutier.com/x86/rsqrtps https://www.felixcloutier.com/x86/rsqrtps
- wowczarek 7mo agoGood to see I'm not the only weirdo still using Midnight Commander.
- Fr0styMatt88 7mo agohahaha earlier today I needed to move some files on my server. Used Midnight Commander within an SSH client…. on my iPhone lol Being able to click in Midnight Commander makes this surprisingly usable for quick jobs!
- justsomehnguy 7mo agoWhy would you be a weirdo? Two-panel is the only somewhat sane way to navigate the file system, though I still try to Ctrl+\ and need to remember to Alt+S and only then to type the search pattern.
- wowczarek 7mo agoIt's just that I see so many people today with those new fangled, asynchronous, rusty thingummywuts full of unicode and sixels and kitties and whatnot that sometimes I wonder, but an orthodox FM is the only life I understand and my neural pathways for NC + MC key shortcuts run deep. I'm also a diehard mcedit user and I refuse to vi* unless forced, so that might be the weird bit. It's all good.
- justsomehnguy 7mo ago> so many people today with those new fangled, asynchronous, rusty thingummywuts full of unicode and sixels and kitties and whatnot Ah, those localhost admins? Sure, if I only had a one or two machines then I probably would had some fancy-shmancy 3D TUI object navigator with a direct rendering to VRAM (supported on a whole lot of videoadapters from the list of three). But I have many, many machines to do the things - and all these things are boring, like looking in the logs and mangling the supreme configuration formatted files. And typing `cd /var/log/shitservice` get boring extremely fast.
- phendrenad2 7mo agoHey, routing your own length-matched traces, nice. Is this Altium?
- Joel_Mckay 7mo agoEven modern Kicad does auto length matched tracks now. But I'm lazy, and just used the Zynq 7020 (Dual ARM A9 + FPGA) MYIR Z-turn Board V2 for hobbies. Best regards, =3
- ptmikheev 7mo agoIt is KiCad. No autorouting. I only used the "tune length" tools for adding serpentine traces.
- tkapin 7mo agoVery impressive project!
- absynth 7mo agoAnother board has become Frag complete. Important milestone!
- wadewatts 7mo agoSection 6 where you link to Quake II is 404. (at the time of this post) URL: https://blog.mikhe.ch/quake2-on-fpga/part6.md https://blog.mikhe.ch/quake2-on-fpga/part6.md 404 File not found The site configured at this address does not contain the requested file. If this is your site, make sure that the filename case matches the URL as well as any file permissions. For root URLs (like http://example.com/ http://example.com/) you must provide an index.html file. Read the full documentation for more information about using GitHub Pages.
- ordu 7mo agoParts 5 and 6 are 404. At the end of the article there are words: "More pictures in the next part. Next part: coming soon" I suppose the link came to HN a bit too early.
- ptmikheev 7mo agoI finished the story. Part5: https://blog.mikhe.ch/quake2-on-fpga/part5.html https://blog.mikhe.ch/quake2-on-fpga/part5.html Part6: https://blog.mikhe.ch/quake2-on-fpga/part6.html https://blog.mikhe.ch/quake2-on-fpga/part6.html I wanted to submit the github link as "Show HN". It seems that the guidelines doesn't forbid "Show HN" if somebody else posted a link to my project prematurely. However it seems that I can not. Rejected with "We're temporarily restricting Show HNs because of a massive influx, mostly by users who aren't yet familiar with the site or its culture." :-(
- sznio 7mo agoyeah, not the author here. I found the project on YouTube[1] and wanted to share it - but decided to find something that's text for HN, and in the rush to post I failed to check if the post is even complete. I should've posted the video instead. [1]: https://youtu.be/sioLAkNQC_I https://youtu.be/sioLAkNQC_I
- ptmikheev 7mo agoIt is because I haven't written it yet. I wanted to finish it first, and post to Hacker News next week, but sznio did it earlier :)
- rasz 7mo agoI find first version https://github.com/petrmikheev/endeavour https://github.com/petrmikheev/endeavour much more impressive. Dude somehow managed to get 100MHz DDR1 ram working on 2 layer board with no ground reference :o Its one of those things you only attempt when crazy or dont know any better. Anyone with EE experience will tell you its impossible, like flying commercial grade SoCs in satellites :) Mad lad.
- deleted 7mo ago[deleted]
- joe_mamba 7mo agoSignal integrity is a myth propagated by big-PCB.
- chromacity 7mo agoI can't imagine why a 100 MHz digital signal at 2.5 V would be even particularly challenging on a small two-layer PCB. A lot of signal integrity lore has to do with passing EMI compliance (this almost certainly wouldn't), as well as with people extrapolating from Rick Hartley videos without pausing to think if it really applies to hobby stuff.
- brcmthrowaway 7mo agoWith Claude, a software engineer can now be a hardware engineer.
- 15155 7mo agoLet's see Claude's buck converter layout, BGA fanout, and routing.
- JoachimS 7mo agoVery impressive, and I'm sure satisfying. Kudos!
- ge96 7mo agoWhat's the deal with the diagonal squigglys
- msk-lywenn 7mo agoAs I understand it, it's for all signals to cross over in the same amount of time.
- buckle8017 7mo agoThey match the length of all the wires. That way they all have the same delay properties.
- Liftyee 7mo agoWilling to solder BGA, but not willing to use 0402 components while using the stencil anyways? Nonetheless, impressive project!