-
Notifications
You must be signed in to change notification settings - Fork 11
Integrated uploader #2
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
Conversation
|
I'm testing on windows and a few oddities:
Please get Update Bootloader working then I'm ready to merge. |
|
Thanks @nseidle ,
Hopefully all better now? |
|
All better! Thanks. I forgot about the baud for uploading. Yep, that was the issue. Nice catch and fix. I really it. @oclyke Please have a review so we can merge at your convenience. |
This is probably OK considering that this is the "Artemis" firmware uploader. However I think it is worth mentioning that the Edge board is still produced with the ASB set to 921600. Could/should there be a small menu option to enable use of this tool with the Edge? |
oclyke
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good to me. I'll now take it for a test drive and also generate Mac / Linux binaries
|
Thanks @oclyke ! |
|
I'm onboard.... @nseidle do you think we should support the Edge here? THe drawback is possibly clutter in UI but I can't think of anything else. I will hold off on generating binaries until we decide which way to go. |
|
Agreed, add the checkbox. This is a tool, I'd rather have functionality than form. |
|
OK. Leave it with me. I'll try and rotate the label so it runs vertically up the left edge (geddit?!) of the GUI. Unless that's a lame idea?! |
|
Clever idea - I'd like to see it at least to see if it is useable - worried it could be hard to read. In the meantime I just got to testing this on my Mac. No matter what serial port I select I get an immediate failure with this message: Also of note (I guess) is that hitting the button again did not produce any more of that error message. I could not tell if it was trying again and getting the same error and overwriting it in the status window, or if it was just not trying after the one error. Some thoughts:
|
Changed RemoteWidget(QWidget) to MainWindow(QMainWindow) to make it easier to add the Board Type menu and status bar. The QWidget labels and buttons did not need to be self.'globals'. Removed the self. from those. Added the Board Type menu with checkboxes for Artemis (for Artemis-based boards) and Apollo3 (for the Edge). Added statusTip's for each. Added SETTINGS_ARTEMIS. Refresh (update_com_ports) now restores the previous port if it still exists. Commented out messages.clear() so previous messages are retained. Update bootloader baud rate is set automatically to 115200 for Artemis boards and 921600 for Apollo3 boards.
|
I've made a few changes and we now have a I've stopped the messages box from being cleared between updates/uploads, so you can see the full history. Refreshing the com ports will leave the previous port selected (if it still exists). A nice touch is that the window size can now be changed too - by dragging the bottom right corner of the window. I can't explain why you're seeing Mac com failures but I suspect it is something fairly low level linked to the serial port and/or its baud rate capability. On my Windows machine, I see an instant failure if I leave COM1 selected (the default non-USB com port) and have 921600 baud selected. If I change the baud rate to 115200, the code does attempt to talk to COM1 before timing out. If you have time, can you please try running the artemis_svl.py and ambiq_bin2board.py as per this post. Does that work? Adam Garbo has built and run the executable successfully on macOS Catalina 10.15.4. Here's a copy of his pip3 list just in case that helps? This was before he replaced crypto with pycryptodome ( |
|
Here's how I tested:
So somewhere in there my issues got resolved, it seems. I will go ahead and generate binaries for mac / linux (ubuntu). Thanks Paul, this is sweet! |
generated with: owenlyke@Owens-MacBook-Pro-10 tools % pyinstaller --onefile --noconsole --distpath=. --icon=artemis_firmware_uploader_gui.ico --add-data="artemis_svl.bin:." --add-data="Artemis-Logo-Rounded.png:." artemis_firmware_uploader_gui.py
generated with pyinstaller --onefile --noconsole --distpath=. --icon=artemis_firmware_uploader_gui.ico --add-data="artemis_svl.bin:." --add-data="Artemis-Logo-Rounded.png:." artemis_firmware_uploader_gui.py
|
@PaulZC I've just added the binaries for OSX and Ubuntu. Nate and I agree that you can go ahead and merge this PR 👍 |
|
Thanks @oclyke - glad you like it! |

Hi @oclyke / @nseidle ,
I think I'm about done with this. I've updated the README and added the pyinstaller build instructions. It is missing the executables for OSX and Linux, please drop those in when time permits (and delete the DELETE_ME.txt placeholders).
The code is not quite as elegant as I would like - it passes many things using self. 'globals' - Owen may need to put on his rose tinted specs when reviewing it! - but it is a neat stand-alone arg-less one-file solution.
Enjoy!
Paul