-
Notifications
You must be signed in to change notification settings - Fork 18
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
Yardforce 500b #12
base: main
Are you sure you want to change the base?
Yardforce 500b #12
Conversation
@cedbossneo Have you gotten around to testing this version of the 500b support? |
@jeremysalwen @Janrupf It's been a while but there were some additional fixes from @benjaminlundgreen in the adc_dma branch that I'm not sure if have been picked up (or resolved by other means) I can't remember the reason entirely - was around the clock speed, DMA and I think was fixing some ADC reads... (I'm using that version with everything working) |
I think the DMA functionality can be skipped, that was a wild goose chase. There are however some corrections to get the mow motor NTC working, and also add battery ntcs. benjaminlundgreen@d9cc1b2 |
I had to add platformio/framework-stm32cubef4@^1.26.2 to platformio.ini and comment out #include "proxy_inc/stm32f4/startup_stm32f4xx.s" in startup_stm32f.s to get the repository of @jeremysalwen to compile. If I didn't do the first I get an undefined reference to `HAL_UARTEx_ReceiveToIdle_DMA' , which https://community.st.com/t5/stm32cubeide-mcus/why-is-there-no-quot-stm32f4xx-hal-uart-ex-c-quot-hal-library-in/td-p/220258 refers to version1.26.2 as the fix. |
@brupje Coud you explain a bit more? Can you compile @Janrupf's https://github.com/Janrupf/Mowgli/tree/yardforce-500b branch without modification? |
@jeremysalwen : thanks for your reply. No, I get the same error with @Janrupf 's repository: .platformio/packages/[email protected]/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: .pio/build/Yardforce500B/src/panel.o: in function adding the line platformio/framework-stm32cubef4@^1.26.2 to platformio.ini results me in getting: .pio/build/Yardforce500B/src/startup_stm32f.o: in function Commenting |
Oh yeah, not having So yeah, adding the line to the platformio.ini and removing the include is indeed the correct way |
Hmm, I can't reproduce the failing build with the latest platformIO. It seems to compile fine, with or without the include and with or without the platform.ini change. Do you have an idea what might be different on your system? Looking at the code, I'm also not clear about what the suggested fix is. Are we just completely removing the |
|
(See the discussion on cedbossneo#12)
(See the discussion on cedbossneo#12)
Okay, I have deleted the extra assembly files @brupje can you check that it works for you? |
It compiles fine for me. Removing the startup files also fixed the requirement for platformio/framework-stm32cubef4@^1.26.2 in platform.ini. It compiles now happily on 1.25.2, so that is great. Well almost happily: Compiling for the yard500 instead of the 500b does not give this warning. EDIT: this is on top of the compilation log: It does look important. EDIT2: Reverting back does still give me "Warning! Cannot find the default startup file for Final edit: Ok, I think what is happening is that startup_stm32f4xx.s is required, but somehow it is already included without reference from startup_stm32f.s. Hence, commenting out "#include "proxy_inc/stm32f4/startup_stm32f4xx.s" fixed the double inclusion. But removing the entire file startup_stm32f4xx.s from the project is not accepted by the linker. So only removing startup_stm32f4xx.s would have fixed the issue for me I guess. I am really not sure how the file is included from a subdirectory proxy_inc/stm32f4 and not conflicting with stm32f1/startup_stm32f1xx.s. But maybe through stm32f_it.c that includes "#include "proxy_inc/stm32f4/stm32f4xx_it.c"" |
Okay, new theory:
Note how it doesn't exclude the proxy_inc assembly files. So the issue might be the same assembly file being compiled twice? Unfortunately just filtering out the proxy_inc assembly files gives the same linker warning about Reset_Handler... |
Fix some bugs. Currently the software keeps restarting.
Use correct handle for ADC interrupt.
This was possibly the bug that caused the 500b branch not to work on the 500 classic?
Root cause: 1. .s files are not processed by the preprocessor, since they are passed directly to the assembler. Only .S files are processed by gcc, which uses the preprocessor before sending to the assembler. Thus the #includes in startup_stdm32f.s had no effect. 2. The proxy_inc/**/*.s files were accidentally *not* filtered from the sources like the .c files in the same directory. Thus the startup code for both boards was unconditionally included. 3. The two bugs cancelled each other out for the 500b, resulting in the correct startup code being built. However, it was incorrectly including the 500b's startup code in the non-500b build.
8603ccd
to
b36ab84
Compare
Okay, I think I have solved it. Rebased on the latest main. @brupje please test! Root cause: |
Bonjour je teste la dernière mise a jour pour 500b ( firmware et docker mis a jour), la plupart des infos ne remonte plus ! Hello, I am testing the latest update for 500b (firmware and docker updated), most of the information is no longer available! and is no longer necessarily displayed on the app and dashboard. |
Hmm, it's working for me. Have you tried restarting the docker containers?
I have found that openmower has been flaky lately, and restarting it can fix it. If you are getting the IMU showing up, that means OpenMower is able to communicate with the mowgli board. You can check that it is properly generating the new status message by running utils/status.sh. If it has the "mow_enabled" field, then you know the new mowgli firmware is working properly, and it's probably a problem with your OpenMower stack or the openmower-gui. |
Okay so it looks like the status topic is not being populated. Can you check the imu? If it's not showing up, try catting /dev/mowgli and see if anything is showing up. Edit: Also I should be clear I do not think these problems are caused by this pull request, since the only change is a rebase and minor change to the build file. If you think it was a recent code change you could checkout before the last commit and see if that works for you. |
Sorry for the delay, currently battling an overheating STM32 chip. For some reason the chip seems to overheat and draw too much power Still fails to build without the line platformio/framework-stm32cubef4@^1.26.2 in platform_packages. Other than that it looks fine. |
Bonjour, j'ai refait mon ssd, mis ajour les dockers et mis a jour le firmware et toujours aucune remonté, et j'ai ça dans les logs : I've rebuilt my ssd, updated the dockers and updated the firmware and still no response, and I have this in the logs: mowgli-openmower | [WARN] [1723029858.621332]: Expected Checksum: 0x97E62D |
Looks like you need to update openmower-gui still. It is using the wrong messages |
@brupje merci pour ta réponse rapide, je précise j'ai une 500b et on est une dizaine a être dans le même cas depuis la dernière mise a jour publié et cela même après la mise a jour de firmware comme préconisé. @brupje thank you for your quick reply, I have a 500b and there are about ten of us in the same situation since the last update was published, even after the firmware update as recommended. juditech3d@yardforce85: infos : quand je remet ma copie ssd de sauvegarde précédente, elle fonctionne a nouveau juste quelques heures ou jours puis je pense que cela se met automatiquement a jour et me retrouve avec le même problème comme décris ici. Si il y a quelque chose que je peux faire pour faire avancer les choses dites le moi. info: when I put back my previous ssd backup copy, it works again just for a few hours or days then I think it automatically updates and I find myself with the same problem as described here. If there is anything I can do to move things forward let me know. I've also confirmed that the 500 classic version was affected and that the firmware update fixes the problem for this version. |
Your problem seems to not be with the mowgli firmware, but with the rest of the software you are running, i.e. openmower, openmower-gui. For some reason you are running older versions which are not compatible with the newer ROS message. You need to figure out why this is happening. It is not the fault of your mowgli firmware, and it is not the fault of this PR. You would be getting the same errors if you swapped out for a non-mowgli board. I suspect you are running some non-standard version of mowgli-docker. Get a fresh checkout from cedbossneo/mowgli-docker, and set it up fresh. I think that will work. Please ask for additional help on the discord server since this is distracting from the discussion of this PR., |
merci @jeremysalwen pour ces éclaircissements et désolé d'avoir polluer ce PR. thank you @jeremysalwen for these clarifications and sorry to have polluted this PR. |
@brupje needed this to compile with his version of platformio.
Okay, I have added |
Were you ever able to sort this? |
(Continuation of Janrupf's pull request)
Additionally fix the potential bug and minor cleanups.