I just bought a Logic 8 and after connecting it to the Logic2 and closing the application, the green light stays on and I just wanted to make sure if it is to disconnect from USB when the device is for the lack of better term, “active”
@eirannejad Good question! The green LED is meant to stay on until physically disconnected from the PC. It’s intended to be disconnected while the LED is still on.
The green LED simply means the firmware has been loaded (we load the firmware everytime the software is launched while Logic is connected, or if Logic is connected while the software is running). It stays on (i.e. the firmware stays loaded) even after the app is closed. You’ll notice that, while the LED is on, if you close the app and re-open it, the LED will briefly turn off then turn on again due to the firmware being re-loaded.
Hope that makes sense!
I did notice that. I had a Hantek portable oscilloscope before that had a similar firmware-hot-loading design and I guessed that might be the case here as well. Very smart. Thanks a lot for the detailed information
P.S. I work on macOS primarily and I very much appreciate the love you guys put into the hardware and software design and just he fact that it works on a mac
For some of our devices we do the same thing, except that if you restart the host application it only uploads the firmware if it doesn’t match the firmware on the device already. That means a boot loader is required on the device to be able to report the currently loaded firmware, but you must have something of that sort already to install the firmware from the host.
The advantage of course is that you don’t get the startup time hit if the firmware on the device is already the right version. If the firmware install time is well under a second then I guess it doesn’t matter either way.
@P.Jaquiery Just out of curiosity, the simpler design does not need a bootloader? How does the app communicate and load the firmware? Is that a USB protocol feature?
One way to work it is to have a semi-permanent firmware, usually in flash, that the app checks using whatever proprietary API the device uses. In that case the firmware only gets updated when the installed firmware doesn’t match the version the host app wants. Our newer devices do this.
Another way is to have a slimmed down version of the firmware in ROM (or flash, or …) that the device boots from and use that to bootstrap loading the correct firmware from the host. In this case the firmware is likely installed to RAM. That is what our older devices do. Again it uses a proprietary API for the communication.
Boot loaders are interesting and somewhat scary. It’s pretty easy to end up with bricked hardware if you get it wrong!
There are public protocols that support boot loaders. Many processors have boot loading systems baked into internal ROM so you can plug a device fresh off the production line into a USB port and the processor will load initial firmware with the assistance of a little app on the host computer.
Hope that helps, although I’m not sure it answers the question.