Since this is a build-it-yourself device,
It's more of a 'prototype for inspiration' than a device per se. It works for me and has been tested by third-parties, but it's not really plug-and-play (and might never be). It's also expensive. I wouldn't recommend building one unless the builder has some significant experience playing with such stuff...
The current source of information is this thread, really...
- Here's the BOM file (with links to where to buy)
- Here are the Gerbers for the PCB
Everything should be in the KiCad project (V5.1 or later). In addition, there should be a ZIP file with generated stuff like Gerbers, that I uploaded to JLCPCB for manufacturing (plus placement & BoM files: nubus-to-ztex-all-pos-jlcpcb.csv &
nubus-to-ztex-jlcpcb.csv). Theoretically (and assuming the relevant parts are still available!), just uploading the ZIP, placement & BoM to JLCPCB should 'just work'... but again, experience needed, JLCPCB is about price! Also, triple-check the orientation of SMD parts, KiCad and JLCPCB seem to have different assumptions and nearly all of them need to be rotated into proper positioning :-(
JLCPCB did both the PCB & the full assembly of all parts. I can do 2.54mm through-hole soldering (needed for the IIsiFPGA's 120-pins DIN connector)., but not SMD.
- Here's the the FPGA module you need
ZTex 2.13a, other 2.13 might work (same pinouts, larger Artix-7 FPGA), no other module will (different pinouts and/or supply voltage).
- Populate the PCB using your favorite method
- Use XYZ software with JKM programming tool to write xxxxxx.bitstream to the FPGA
ZTex have their own software to program over USB. Vivado with a JTAG programmer also works, but is more complex (for V1.2, the current one, don't go anywhere near the older V1.0 and its CPLD!).
- Any other hw configuration that's needed before use
External 5V supply & USB cable for programming is all. The ZTex 2.13a can take more than 5V, but if it's on the NuBusFPGA carrier that 5V is fed directly to the HDMI and USB circuit, and those *really* don't like more than 5V.
- Software requirements on the Mac side
For basic framebuffer & RAM disk, none, the built-in Declaration Rom handle everything.
Acceleration & audio have their own INIT, but those are optional (and cool
).
The willingness to waste money on what is fundamentally a toy & take some risk with your vintage hardware... Although it works-for-me, it may not be 100% compliant with all rules and regulations, etc.
I poked through the Github, and it looks like nubus-to-ztex.csv is the current BOM? I see designators, but not any component values or other details.
Should be. More of the relevant information is in the KiCad project, the CSV are mostly formatted for SeeedStudio & JLCPCB.
I was also unsure about the meaning and naming of the Gerbers. How many layers is the PCB, four?
Yes, four layers, the naming is whatever comes out of KiCad. Those works a SeeedStudio (SBusFPGA V1.x, NuBusFPGA V1.0) and JLCPCB (NuBusFPGA V1.2, IIsiFPGA).
More photos of the assembled PCB would be helpful, and at a higher resolution, so they could be used to compare against a work-in-progress board. Is the PCB thickness 1.6mm? Any other special requirements like ENIG plating?
I think everything should be visible in KiCad ? The board is the default 1.6mm and I did use ENIG (I think), but not idea whether that's a requirement...
For people who mainly want to build this and use it, rather than hack the software, it would be awesome to have a prebuilt FPGA bitstream.
Yes, for the 3 out in the wild I shared a reference bitstream and INITs. Make things easier to start. Declaration ROM and the microcode for the acceleration are built into the bitstream (although the Declaration ROM can be in an external Flash connected to the PMod if desired, which can save time when playing with it).
Once I have the bitstream and Vivado installed, what's the process for programming the Ztex module? Is it USB or do I need any special FPGA programming hardware? Is there any other hardware or software configuration that needs to be done before the card could be used?
Easiest is to use ZTex' programming software over USB, as you just need the USB cable. JTAG is also an option, but I didn't even bother having the JTAG header assembled in V1.2, though that's possible.
Once the bitstream is flashed, then the card should be plug-and-play as any other NuBus framebuffer. As mentioned, only acceleration & audio do need additional software.
What license are you using for the hardware and software? I didn't see anything specifically mentioned.
I really should fix that! There should be very little reliance on patched third-party code by now (some is included by github submodules). Probably, the gateware would be same as Litex (BSD 2-clause), stand-alone SW code GPL2, hardware CC Attribution-NonCommercial-ShareAlike.
Sorry for the million and one questions, and many apologies if this is already answered somewhere that I didn't see. Thanks!
No problem, and thanks for your interest