HI,
I’m a GSoC student with BeagleBoard.org this year. My project is to develop a GUI based usb flashing tool for BeagleBone hardware.
The tool comprises of two parts a nodejs usb bootloader server which tftps spl and uboot to boot it into mass storage mode and a flashing tool based on https://etcher.io project. Both finally packaged into a app using electron framework.
I’ve developed the usb node.js bootloader server, code here https://github.com/ravikp7/node-beagle-boot .
I want the BeagleBoard community to test this usb server. Currently I’ve tested it’s working on Ubuntu 16.04. On Windows 10, I’m having some issues with usb drivers, so testing on Windows is very neccessary especially on Windows 7,8.
I request all to test it on various platforms preferably first on Windows and OSX. Let me know any issues that you face.
Hello Ravi,
Seems like a really cool project, but you’ve made some assumptions in your readme.md that anyone will know what the next steps are. So, if this project is geared towards people who might have a hard time understanding how to flash an eMMC, you’ve not given enough information as to how to achieve said goal. For instance:
I’m running Windows 7 pro x64 on my system. Now . . .
Windows1. Clone this repo and cd into it.
- Connect BB through usb by holding down S2 (boot button).
- Install am335x usb drivers through Zadig.
- Open Zadig, select Options → List all devices. Select AM335x usb from list and install WinUSB driver.
- From admin power shell or cmd run:
npm install
npm start
It should now boot BB into usb mass storage mode.
Now what ? Point host machine to the beaglebone’s IP address through a browser ?
See, you’ve given a good explanation as to why this tool is needed, but you have not fulfilled the goal of making this project any easier for beginners.
Hi William,
Thanks for showing interest in testing this project. But, you’re getting it wrong, the node.js server is not intended to be used by beginners, I’ll be developing a complete simple to use GUI based flashing tool to flash the BeagleBone hardware. The node.js usb bootloader server is an underlying part of the tool. It’s been just two weeks into coding, the server is complete. So, I was looking for testers here which I expect are already knowledgable about these stuff, so the documentation was pretty straight forward and again the documentation was not intended for beginners.
Additionally, in step 2 “. . .press S2 . . .” is alternate boot mode. I could make a few assumptions, but I bet my initial assumption would be wrong. You need to clarify that part because I expect this would cause the Beaglebone to boot from USB ? Because you’ve not mentioned adding an sdcard to the board.
Yes, USB booting.
After that, step 3 is not at all clear. Quite honestly, I’ve been using Beaglebones now for 4 years, and I could not tell you, or anyone what Zadig is. Windows, at least in the case of Windows 7 will automatically install RNDIS driver from microsoft after a Windows update or two.
For your concerns regarding Zadig, it’s a gui tool to install WinUSB drivers for usb devices, here am335x. This project utilises libusb library GitHub - libusb/libusb: A cross-platform library to access USB devices which requires those drivers to be installed in order to access the usb devices. I’ll update the documentation with this info. And I understand that this info should have been there to save your precious time.
So now, here is what I’m thinking, For a beginner, it’s still easier to go to etcher.io, write an image to an sdcard, and comment out one line in uEnv.txt to make a flasher image. I think your project is a great idea, but to enable beginners, you need to be more verbose in your documentation. As it sits, what you have here is a great tool, that will probably enable those of us who already know how to get this done through other means.
Final tool will be as easy as connecting BB through usb by holding boot button, selecting image to be flashed in tool, and clicking flash button and get flashing done without any configurations or modifications and no sd card. To know further about project working, see this project intro video https://goo.gl/recz8i
Quick tip: use the LTS release of node i.e. 6.11.0 to get things smooth while node modules installation. Let me know if you need further help. Happy testing 
Thanks again.