Documentation Review

More
1 year 4 months ago - 1 year 4 months ago #9584 by MikeS
Documentation Review was created by MikeS
OK, so the problem with the WiFi talking I2C with the clock is a clock software issue. Turns out it won't talk I2C while it's in "First start mode", i.e. until after it goes through a full init (press button with all 8's on after factory reset).

Then, my anodes are reversed, seconds are all the way on the left. I again made the mistake of believing the documentation, which says

The terminals to the anodes for each tube. The allocation of anode to tube is:
1. Tens of hours
2. Hours
3. Tens of Minutes
4. Minutes
5. Tens of seconds
6. Seconds

...along with a diagram showing pin numbers. But sure enough, it's exactly the opposite on the schematic (or in the code, take your pick). Arrrgh.

But, I should be able to change that by changing the ledPin_a_X defines in the code. Nope, they're hardcoded further down like this
case 0: PORTD = PORTD | B10000000; break; // PD7 - equivalent to digitalWrite(ledPin_a_1,HIGH);
That can be fixed by changing to
case 0: PORTD = PORTD | 0x01<<ledPin_a_1; break; // PD7 - equivalent to digitalWrite(ledPin_a_1,HIGH);

Oh, and the user manual doesn't correctly describe a start after factory reset. It does some counting thing before showing all 8's again, then the version number, then the time. I've already spend enough time troubleshooting someone else's code to find out what it's doing.

Can't wait to see what's next. :(
Last edit: 1 year 4 months ago by Ty_Eeberfest. Reason: Changed thread title back to something more meaningful than a pirate noise.
The following user(s) said Thank You: Ian

Please Log in or Create an account to join the conversation.

More
1 year 4 months ago #9586 by Ian
Replied by Ian on topic Arrrgh.
Hi Mike - thanks for reporting this back here.

I wasn't aware you were in test mode, it's clear now that you say this that the software doesn't even open up the I2C interface at that point. It's purely a build help to get people over the hardest part of the build, which is the HV part. This is where people have had the most problems in the past.

it's good to have someone who reports the issues, most people just gloss over them. I suppose the process of making the front panel PCB has highlighted them for you, because you can't just swap the wires round. It is preferable to change the diagram rather than the code, because the code is used in several clocks.

If I update the manual, could you give me the nod that it is right?

What can I do to say thank you for highlighting the issues? I'd like to do something to make up for the doc mistakes, and for you taking the time to figure it out.

Please Log in or Create an account to join the conversation.

More
1 year 4 months ago #9594 by MikeS
Replied by MikeS on topic Arrrgh.
Ian, I think it's better to fix it in the code, even if it means having #ifdefs for different boards. The way the Classic is laid out, Anode pin 1 is on the left, and that's where hour's 10's is, too, so that makes sense. It doesn't make sense to have the pins going in the opposite direction to the tubes.

Regarding "test / first start mode," in the other thread I made it clear that's where it was

I was thinking that perhaps the clock needed to complete initial setup before that would work, but don't see anything in the code which says so.

And, of course with no display yet, it would have been almost impossible to get out of that mode. But the WiFi troubleshooting steps don't say that, and I was told it must be a version mismatch or circuit problem, so I spent hours going down that rathole only to find it was a software issue.

Yes, I'll take a look at the manual.

BTW, I changed out the MOSFET to a IPP60R060P7 (650 V / 60 mOhm Rds). It barely gets warm. But, it's also a much more expensive part.

Please Log in or Create an account to join the conversation.

More
1 year 4 months ago #9595 by Ty_Eeberfest
Replied by Ty_Eeberfest on topic Arrrgh.
Actually your "rathole" just consists of looking at setup() and seeing that the only way it'll ever move on to mainline code is if the button gets pressed (Line 714) and that there is no I2C related code in setup(). And no I did not catch your statement you quoted above. I'm not really expecting people to be running their boards looking for things to complain about before they even hook up tubes (maybe that is why the dox don't explicitly say "hey BTW I2C does not function in Test Mode"), but I AM used to addressing this same I2C at least twice a month and it's always one of the 2 things Ian and I named. So you may not be too surprised that I skimmed your post and gave a fairly stock answer.

Look into it later when the dust is clearing off the crater.

Please Log in or Create an account to join the conversation.

More
1 year 4 months ago #9596 by MikeS
Replied by MikeS on topic Arrrgh.
As I clearly said, I did take a look at the code. Mostly at comments - like the "// We don't want to stay in test mode forever" marking the section of code you're talking about. I2C actually is started in setup(), it's turned on as part of the call to getRTCTime(), near the end.

And, as I also said, I specifically questioned whether I2C should work when the clock wasn't configured. To which your response was "If you are not seeing this {"found I2C slave"} there is a problem."

I'm not really expecting people to be running their boards looking for things to complain about before they even hook up tubes

How silly of me to also say I didn't yet have the display running and not meet your expectations.

Don't try to make this out as an issue of my own making. I gave complete and accurate info, was acting based on published documentation, and you glossed over it and gave an incorrect response. And no, I'm not here "to complain," although I feel justified in doing so after spending hours of troubleshooting time based on incorrect info

Please Log in or Create an account to join the conversation.

More
1 year 4 months ago #9597 by Ty_Eeberfest
Replied by Ty_Eeberfest on topic Arrrgh.
As you often point out, details matter, so:

Yes there is a bit of I2C action in setup(). However, it does not happen until line 749 and clearly execution will never get past line 717 [end of line 697's while(inLoop)] unless the button is pressed while displaying 8s.

You seem to take everything as a personal affront. I am not paid enough (in fact, paid nothing) to deal with your attitude. Got a problem? Take it up with Ian.

<plonk>

Look into it later when the dust is clearing off the crater.

Please Log in or Create an account to join the conversation.

Moderators: AccutronTy_EeberfestIan
Time to create page: 0.180 seconds

Search

Tube Suppliers

Go to top
JSN Boot template designed by JoomlaShine.com