At last night’s meeting of the PDP-1 Restoration Project, we actually used WREC to reform four capacitors out of two of the Type 728 power supplies. In the process I found and fixed a few minor bugs. I need to get a new release (0.02) together. I started compiling a ChangeLog from the commit messages in the Subversion repository, but “svn log” doesn’t seem to work quite the way I want.
The capacitors we reformed were 160,000uF 20V from the newer style Type 728. Over my objections, we only reformed them to 16V, except that I made an error in program settings and one of them was reformed to over 19V. (In my opinion, they should be reformed to at least 90-95% of the rated voltage to ensure that the thickness of the reformed aluminum oxide dielectric layer is sufficient.) Typically these take a little under 8 minutes.
The power supply can’t accurately measure curents of only a few mV, so we have to manually test the current limit, and measure the capacitance, after reformation. In principle we can reform one capacitor while we’re testing the previous one, but we didn’t have our act together well enough last night to do that on all of them.
It would be nice to have an automated tester, so I may try to whip something up. It probably wouldn’t make sense to try to automate any of this if it was only ever going to be used on the PDP-1 Restoration Project, but I am hoping that it will be useful for future computer restoration efforts at the Computer History Museum and elsewhere.
I made some more progress on real-time graphing with GtkExtra, but have not yet tried to integrate the graphing code into WREC. The testrealtime demo keeps a constant chart width and horizontal scale by shifting the horizontal range as new data comes in. With a trivial modification, it is possible to keep constant chart width but change the scale so that all the data remains visible. But what I really want is for the scale to remain constant and the chart to get wider, so the user can scroll horizontally. The gtk_plot_canvas widget does have scrolling support, so I just need to handle the resizing. I’m not sure if there’s any easy way to force scrolling to follow the newly added data. I’ll have to study the gtk_scrolled_window widget.
Update: To get what I wanted out of Subversion for the ChangLog entries, I needed to do two things:
- Use the “-v” option so the files affected by each commit are shown
- Use a URL for the root of the repository, so that it lists everything
I can’t recommend Subversion highly enough. It’s a very worthy successor to CVS.
At first I wasn’t convinced that the way file revision numbers work in Subversion was an improvement. In CVS, every file has its own independent revision numbering, unrelated to that of any other file. With Subversion, the revision numbers are global to a repostory, so everything that is commited by one command gets the same revision number, and the unique revisions of a specific file do not typically have consecutive revision numbers. In other words, if there are three revisions of foo.c in the repository, they might be revisions 12, 137, and 268.
Coming from CVS, this seemed very strange, and I thought it might be awkward, but in practice I’ve found that I very rarely care how many revisions a file went through between two specific revisions, and I can find that out easily enough using an “svn log” command. But I very often want to know what revisions of two files were contemporary, and with the Subversion method this is trivial, while with CVS it was difficult, involving either groveling through multiple logs, or doing a date-based checkout or update.