Another useful indication: the "--icarus-timing short" gives me the following code:
Icarus 6 Re-estimate: Hs=8.738163e-10 W=5.903921e-01 read_count=42 fullnonce=4.343s
and never dropping below 5 seconds for the other boards.
if it's true, and if I don't melt the PSUs, the potential of the Blackarrow boards is higher than expected!
Yet again, if you are using the V42 bitstream, you cannot get reliable timing.
V42 adjusts the clock speed and I can't ask the device for the clock speed.
As long as the fullnonce time is less than the max clock speed, it will hash at the maximum performance.
However if you set it too low, it will have to generate more work per result ... e.g. setting it down to 10 or 20 would be too low
(10=1s 20=2s)
The point of the timing is 2 things:
1) Important: that it aborts work before it is idle (if it doesn't find a result)
2) (Not really important:) that it shows the correct MH/s
So as long as the fullnonce number is below (but not too far below) the maximum hardware performance, you will get the max possible shares you can.
There is a reason why the timing works the way it does.
It does a line of best fit through a set of points (and also ignores end case points)
The original problem was that I was dealing with serial-USB time results to determine a picosecond accuracy calculation.
Have a look at the 400MH/s results and you may be surprised (as I was when I wrote it) how accurate the estimate is.
Each individual result varies by enough to make it not possible to determine the clock speed of that single result - that's basically using the result to determine the result - so yeah that's not possible either
So how it works at the moment requires a static clock (which the V42 doesn't have)
There is one change I'll probably add soon and that is allow short=N (or long=N) to set an upper limit on N so although it wont be as close as possible to the 'best' timing to minimise the amount of work generated, it will allow you to ensure N stays below a limit but it can still report Re-estimates to see how fast it 'thinks' it is hashing
Bottom line with V42:
Let it run for a few days and then look at accepted shares - to see how fast it is really hashing.
(and using --icarus-timing 2.0=75 will allow up to 572MH/s)
I you really think it can go at higher clocks, then you need to replace 75 with a lower number.
to convert 75 to a MH/s limit you simply: 2^32 * 10 / 75