-
-
Notifications
You must be signed in to change notification settings - Fork 356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Touch Screen Mod on Horus X10S Express at low temperatures goes into "Wrong PCB detected" #4509
Comments
Please make sure you submit all the details... you are running an X10S Express, not an X10... and that detail matters, as this is exactly what the PCB revision check is trying to detect in this instance, in order to show the Do you know what that pin on the ISRM board actually connects to on the mainboard / MCU? As the real question atm is why the PCB check now thinks you are running X10 Express firmware on a X10 ... i.e. does it think The PCB check is much older than the IIRC, the revision pins are configured as X10
X10 Express
This became problematic once the touch screen was added since PH.07/PH.08 are used for the touch panel, so the resistors had to go, which would then trip the revision check. PA.06 should have been an alternate test (with had higher priority, since it was manually applied) but clearly this isn't working now. This is the test responsible for this screen being shown: edgetx/radio/src/targets/horus/hal.h Line 422 in 2635a49
|
Yes - I will be doing some testing tomorrow to hopefully see where the problem is happening. You are correct as my X10 EXPRESS has (R2) PH.07 pulled up to 3.3v and PH.08 is floating. (There is no resistor at R1 pads) Also if you build with "-DALLOW_TRAINER_MULTI=NO" will it then start normally? I do have both an X10 ACCST version and a X10S EXPRESS model that I can test with. Thanks - Rich |
@pfeerick sorgive me that I did not state in the title that the X10S is Express, but the image I posted leaves little interpretation, it says "X10S EXPRESS", but I have now changed the title of the issue so that there is no misunderstanding. |
I have created three firmwares, one with the current main branch and the multi trainer active, one disabling it, and one that does not cover this offending commit. |
I think the RTC battery would have created a different problem, and with
the IWDG changes, even then the radio should start up. IMO, it is solely
related to the state of those 3 pins on startup... knowing exactly what is
going on with those pins on the X10 Express will be key to fnding out why
this is happening.
…On Sun, 7 Jan 2024, 4:37 pm Marco Robustini, ***@***.***> wrote:
I have created three firmwares, one with the current main branch and the
multi trainer active, one disabling it, and one that does not cover this
offending commit.
I have flashed and powered on repeatedly without ever a problem with all
the firmwares, but I am certain of the "pcb wrong" yesterday, the tx did
not repeatedly power on as many times.
So in thinking back I'm reflecting on when I had that "pcb wrong," on two
different days with two versions of the firmware compiled--the tx was in
the garage.
This is going to sound crazy but I'm starting to think that the RTC
battery since the current temperature in my garage is no more than 5
degrees may have dropped as a voltage and at power up may have caused a
problem... possible?
At this point I can find no other explanation, the only test I can do now
is to take the tx back to the garage, wait until tomorrow, and try to turn
it back on with the main branch firmware flashed now.
But I am sure of one thing: the date and time have always been correct.
—
Reply to this email directly, view it on GitHub
<#4509 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABJ66KIUL2NTEQ6UNFK36D3YNI7C7AVCNFSM6AAAAABBPTKKKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZHE3TCMRRGU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Crazier things have happened than finding out a change emperature can make
a floating IO pin change it's state... I remember a certain well known
raspberry flavored computer that would lose power if a bright light was
shone in the right place on the board... completely unintentional.
…On Sun, 7 Jan 2024, 5:03 pm Peter Feerick, ***@***.***> wrote:
I think the RTC battery would have created a different problem, and with
the IWDG changes, even then the radio should start up. IMO, it is solely
related to the state of those 3 pins on startup... knowing exactly what is
going on with those pins on the X10 Express will be key to fnding out why
this is happening.
On Sun, 7 Jan 2024, 4:37 pm Marco Robustini, ***@***.***>
wrote:
> I have created three firmwares, one with the current main branch and the
> multi trainer active, one disabling it, and one that does not cover this
> offending commit.
> I have flashed and powered on repeatedly without ever a problem with all
> the firmwares, but I am certain of the "pcb wrong" yesterday, the tx did
> not repeatedly power on as many times.
> So in thinking back I'm reflecting on when I had that "pcb wrong," on two
> different days with two versions of the firmware compiled--the tx was in
> the garage.
> This is going to sound crazy but I'm starting to think that the RTC
> battery since the current temperature in my garage is no more than 5
> degrees may have dropped as a voltage and at power up may have caused a
> problem... possible?
> At this point I can find no other explanation, the only test I can do now
> is to take the tx back to the garage, wait until tomorrow, and try to turn
> it back on with the main branch firmware flashed now.
> But I am sure of one thing: the date and time have always been correct.
>
> —
> Reply to this email directly, view it on GitHub
> <#4509 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/ABJ66KIUL2NTEQ6UNFK36D3YNI7C7AVCNFSM6AAAAABBPTKKKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZHE3TCMRRGU>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
|
@pfeerick in fact I'm going crazy trying to understand what it is, but I'm sure that yesterday after doing a revert of that commit the tx started on the first try, as well as the other day, but in fact I had brought it home on both occasions cases, so the ambient temperature was higher. |
After leaving the tx in the cold in the garage for an hour, flashed with the latest main branch, and running at home after multiple power-ups this is the result. 20240107_101209.mp4And it kept giving "wrong PCB" in multiple power-ups, tried at least 10 times. 20240107_102636.mp4And I'm continuing to turn it off and on and it keeps working. |
Well, this is the 9 proof that I hope can leave no doubt. |
RTC Battery has nothing to do with it, installed new, now voltage 3.27V but same problem. |
Do you want to laugh? |
To momentarily curb the problem here I removed the possibility that it could intercept my tx with the touch screen, by modifying in my compilation batch the hal.h file like this: sed -i 's/((GPIO_ReadInputDataBit(PCBREV_GPIO, GPIO_Pin_7) + (GPIO_ReadInputDataBit(PCBREV_GPIO, GPIO_Pin_8) << 1)) * GPIO_ReadInputDataBit(PCBREV_TOUCH_GPIO, GPIO_Pin_6))/(GPIO_ReadInputDataBit(PCBREV_GPIO, GPIO_Pin_7) + (GPIO_ReadInputDataBit(PCBREV_GPIO, GPIO_Pin_8) << 1))/' /home/marco/src/edgetx/edgetx_main/radio/src/targets/horus/hal.h But curbing doesn't mean solving, but at least then they i can stay up to date with new commits without EdgeTX thinking I have a touch screen lcd. |
@robustini @pfeerick Making the Touch Update as an optional compile flag won't resolve this problem as the board check will still fail.
Does this make sense or do you see a better option? Thanks - Rich |
The four step test that is causing looks to effectively be looking for a value of 0 for NON-EXPRESS and 3 for EXPRESS ... no resistor or two resistors (since two bits in binary == 3). Considering the initial state of the GPIOs (and whether actually initalised, or pulled up or down) is also important. Have a look at step 2... it initialises the GPIO, and because it only init PCBREV_GPIO / PCBREV_GPIO_PIN, PCBREV_TOUCH_GPIO / PCBREV_TOUCH_GPIO_PIN is never initialised. That may or not be a problem here, but probably isn't a good state to be in. If taking all of that into consideration, you can knock some sense into this, that would be great, Otherwise, for now at least, yes an additional compile flag may be needed. I would have preferred a runtime option, but it's too late in the cycle to contemplate going there. I'd be curious to know what happens if an additional #if defined(PCBREV_TOUCH_GPIO_PIN)
GPIO_InitStructure.GPIO_Pin = PCBREV_TOUCH_GPIO_PIN;
GPIO_Init(PCBREV_TOUCH_GPIO, &GPIO_InitStructure);
#endif was added just before
Would you both mind trying this build of 2.10 on your X10 Express? It compiles but that is the extent of my ability to test it. 🤭 I've also added the X10 ACCST build of the same code for comparison. x10-access-fb28d2e75.zip Step 1 edgetx/radio/src/targets/horus/hal.h Line 422 in fb28d2e
Step 2 edgetx/radio/src/targets/common/arm/stm32/pwr_driver.cpp Lines 66 to 73 in fb28d2e
Step 3 edgetx/radio/src/targets/horus/board.h Lines 66 to 86 in fb28d2e
Step 4 Lines 1588 to 1590 in fb28d2e
|
Thanks for the comprehensive and complete explanation! I have tested the firmware from your post as you requested. My NON-EXPRESS with the touch panel mod starts and is working as expected. My EXPRESS with no modifications or touch panel added (yet) starts and is working as expected. Thanks Again for your time and effort on this project - Rich |
No problem at all. Thanks for testing... At least i didn't break it
completly. If we are really lucky, the ice popsicle will play nicely also,
else Plan B will be needed.
…On Mon, 8 Jan 2024, 3:34 pm MRC3742, ***@***.***> wrote:
Thanks for the comprehensive and complete explanation!
I now understand most of it with a few areas still being a little beyond
my basic coding skills!!! 🧠
I have tested the firmware from your post as you requested.
They start and run with no errors on both the NON-EXPRESS and EXPRESS
models.
Not sure I'm a big help here as they also both will start and run with the
current main branch builds.
My NON-EXPRESS with the touch panel mod starts and is working as expected.
SYS/HARDWARE/ANALOGS screen reports,
"Touch Panel: 200 : 130" ( X and coordinates shown properly with finger
movement)
"Touch GT911 FW ver: 4192 TS12CEvents: 0"
My EXPRESS with no modifications or touch panel added (yet) starts and is
working as expected.
SYS/HARDWARE/ANALOGS screen reports,
(Coordinates area is blank as touch panel is not installed)
"Touch GT911 FW ver: 0 TS12CEvents: 0"
Thanks Again for your time and effort on this project - Rich
—
Reply to this email directly, view it on GitHub
<#4509 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABJ66KLF62RX6SDIEJXZLL3YNOAO7AVCNFSM6AAAAABBPTKKKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBQGQYDSMZYHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@pfeerick :-( damn2.mp4 |
Well, that also rules out anything on the So yes, it looks like Plan B ... optional compile flag ... will be needed (for now at least) so we don't break X10 Express for everyone else. 😢 |
@pfeerick provided of course this is not due to a problem with my tx, I don't know, it doesn't mention any malfunction. |
I can confirm that my X10 EXPRESS when subjected to cold, 32degees F. (0 degrees C.) ❄️ , will not start and produces the same "Wrong PCB detected" error. This is surely being caused by floating pin 55 on the EXPRESS changing its state and tripping the detection. Working on a PR to make the Touch Mod optional (Plan B) for the X10 series and revert the PCBREV check back to its original format when firmware is built without the "HARDWARE_TOUCH=ON" option.
Rich |
@MRC3742 thank you very much for the test, because initially I too had begun to doubt that I had defective hardware. |
Glad you were able to catch it before the 2.10 release for sure!
|
@robustini Can you confirm that resistor R1 is not present and the pads for it are not populated on your EXPRESS board? I'm still trying to understand why if Pin 98 (PH.08) is also floating in the original PCBREV check, why that pin isn't effected by the cold temperature that is causing floating Pin 55 (PA.06) to change its state from one to zero? Thanks - Rich |
@MRC3742 I will open the tx again tomorrow and give you confirmation, but if yours is an Express like mine I don't see how mine can have the R1 welded on. |
Thanks - Just curious if mine was missing when built? I've updated the PR for the fix to enable the processors internal pull-up resistor on the problem floating Pin 55 (PA.06) Thanks for your testing and input - Rich |
How do you connect touch panel small ribbon cable. Do you have to make small pcb or can buy onr |
Is there an existing issue for this problem?
What part of EdgeTX is the focus of this bug?
Transmitter firmware
Current Behavior
PR #4151 (already merged) that allows using a touch screen lcd on FrSky X10 unfortunately conflicts multi-trainer feature, which contemplates removing a pin from the ISRM module, which is easy to do and which many have done and which I still use in the OpenTX era.
The result is that my X10S Express now reports "Wrong PCB" at power up, now the firmware thinks I applied the modification to the lcd, which is absolutely wrong.
I don't understand why, since the lcd touch screen modification is quite complicated, instead of doing the pcb check you didn't leave a compile flag for it, it would have been better imho, or the PCB reconnaissance should not be done if the firmware is compiled with "-DALLOW_TRAINER_MULTI=YES" as in my case.
Expected Behavior
With revert 77fd73 my tx turns on regularly, so please @MRC3742 fix this issue, as new implementations normally should not break old established functionality, thanks.
Steps To Reproduce
Version
Nightly (Please give date/commit below)
Transmitter
FrSky X10 Express / X10S Express (ACCESS)
Operating System (OS)
No response
OS Version
Irrilevant
Anything else?
The pin to be removed for the Multi-Trainer.
The text was updated successfully, but these errors were encountered: