-
-
Notifications
You must be signed in to change notification settings - Fork 827
[07_uart_chainloader] Make chainboot only works if I power my RPi3 after status [MP] ✅ Connected
#86
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
Comments
Hi, sorry for the inconvenience! Unfortunately, it is hard to exactly tell where it goes wrong. Due to the fact that it always works when you power the RaspberryPi through Micro-USB, the best bet is that your USB-Serial cable is not able to provide enough power to the RaspberryPi. In this case, anything can happen. Anyways, your message makes me realize that with different people using different serial cables and computers, assuming that powering over the serial works for everyone doesn't scale. It is convenient, that's why I went for it originally, but it was clear that underpowering can be an issue. I'll take an action item to change the tutorials so that they demand the Pi being powered with an officially supported external power supply. This will also require changes to the chainloader protocol. FYI, delays on the host-side are in the Minipush and Miniterm scripts (but I don't think they are the issue here): |
Thank you so much for the quick answer and insightful answer! I certainly did not consider power to be an issue (very new to low level programming / interacting with hardware, so lots to learn). Already checked the Scripts out earlier, because I wanted to understand the chainload protocol. So I tried to use CoolTerm and sending everything manually. Was quite interesting and certainly helped my understanding of what is going on, but didn't work in the end. Since you mentioned it, enjoy your holidays! 😄 |
Hi,
I encountered quite a weird issue in 07_uart_chainloader. After starting
make chainboot
, I never got the desired outputInstead, I frequently got one of the following outputs:
After several hours I finally figured out how to work around the issue:
It always works if I do it like this:
make chainboot
[MP] ✅ Connected
gets displayedI don't really understand the issue in detail, but to me it seems like it's somehow connected to timings/delays. The only place in the code I could find that directly influences said timings/delays is
const DELAY: usize = 2000
in src/bsp/device_driver/bcm/bcm2xxx_gpio.rs. I tried some values here and if I set it toconst DELAY: usize = 20000
, it also works sometimes (but at this point I have no clue if the change really reduces my error rate, or if it just happened by chance and led me to wrong conclusions).Do you have any idea what really causes the error? If so, I would appreciate if you could provide a little write-up what is happening on the lower levels and what causes the error I got. Since chasing this down took more than half of my day but I still didn't really understand it, I'm quite curious now 😄
The text was updated successfully, but these errors were encountered: