An update and lessons learned:
After yet another one failed, I've replaced the corners of my D810 with these
metal parts. This resulted in a wonderful increase in rigidity, but some further pain.
Firstly, the metal parts cause the printer to be *slightly* larger than the original... a mm or two. I used the old attachment holes in two sides of the acrylic top to attach to the 2020s, and drilled a couple of new holes on one side of the acrylic top, so I didn't need any new parts. (The acrylic top will have to be replaced some time... it has some cracks in it).
Secondly, there's nowhere to mount the end-stops. No problem... I printed some new
endstop mounts. As part of that, I also hot-glued some nuts and screws on the carriages to be adjustable end-stop triggers. This turned out to be a Really Good Idea (tm).
However, small diameter items printed OK, but anything larger caused extruder skips. So I turned up the extruder tension. And then things got worse. So, finally, I did some reading up, and found that the extra 2mm in tower spacing is NOT negligible. The firmware absolutely needs to be reconfigured for the different geometry.
I'd been putting off doing anything with the firmware, in case I bricked the ZRIB board, but now I'm forced into it. Generating & flashing new versions of the firmware turned out to be quite straightforward. You can use the latest version of the Arduino IDE (set up to use Mega 2560 and your comm port), and (almost) just use the latest release of Repetier. The latest release of Repetier doesn't include the pinout configuration of the ZRIB board, so you need to replace their Configuration.h and pins.h files with the ones supplied by Zonestar. (The development version of Repetier *does* include a setting for ZRIB, but there are some discrepancies between that and Zonestar's files that I'm still working through). Plug the USB cable into your computer, send the Repetier Sketch to the ZRIB, and it just works
You'll see a slight difference in the UI, where Zonestar's "V2 ..." line on the display no longer shows.
Of course, nothing in my life is that simple.
Firstly, I decided that if I was going to fiddle with the calibration settings, I should do a proper calibration of my printer, the first ever. Reading up on the Net, it is crucial that the bed be perfectly square to all the towers. So, adjusting the bed (as I had been doing) to correct for bed level is *wrong*. The correct thing to do is to adjust the bed so that it is square to the towers. And then don't fiddle with it ever again. Adjust the "bed level" by adjusting the *end-stops*. I was very happy that I'd added the screws to my carriages. (If you don't have any kind of screw adjustment, I guess you could bend the switches themselves up and down to get a little adjustment).
A useful hint to avoid confusion; when doing this calibration stuff, set EEPROM_MODE to 0. This turns off the use of EEPROM, and you can be sure that whatever values you've set up in the firmware are what you are actually using.
Next step according to the Web is to calibrate the tower positions. I suggest doing this *after* the dome/bowl calibration, because if dome/bowl is too bad, you may not be able to print anything. This
thing is convenient -- I just printed the small version. Because I'd been lazy and only drilled 2 holes on one side, my Y (front right) tower was out by about 4 degrees.
Then it came to correcting the dome/bowl error. Dome/bowl error means that, if you command a horizontal move from outside to centre, the hotend actually moves up or down. By doing a Z Calib, and then moving the hotend to various places, I found I had a dome error of about 2mm in 80mm. After a Z Calib at 0,0,0, a move of 80mm in any direction meant the nozzle also moved down 2mm, pressing into the bed and causing filament jams, and extruder skipping and grinding. Various web pages on Delta calibration tell you that you do this in Repetier by altering the PRINTER_RADIUS value in Configuration.h. I spent an entire afternoon and a lot of filament trying increasingly wider values between 75 and 200 with no apparent change. It turns out that the only use for PRINTER_RADIUS is to calculate ROD_RADIUS. It only does this if ROD_RADIUS is not already defined. And ROD_RADIUS *is* defined in Zonestar's Configuration.h. So, in Zonestar's Configuration.h, you need to change the value of ROD_RADIUS. When I finally figured that out and added 2mm to it, suddenly everything started working.
Finally, you need to correct for dimensional error. You do this by adjusting DELTA_DIAGONAL_ROD in Configuration.h, which fortunately works as everyone assumes.
I then did another repeat of each of these calibration steps, since adjusting one can screw up the others.