We were working recently on adding webUSB functionality to existing LPC1768 firmware. The same functionality exists in DAPLink firmware on many boards. We have a first beta drop available. It can be downloaded from here: https://assets.mbed.com/firmwares/lpc1768/mbedMicrocontroller_221130.if
This is a beta release. Firmware still has few known issues that we are working on:
Linux distributions are unsupported (webUSB interface can’t be claimed on that board)
Remote deploy often fails every when semihost is disabled in mbed_app.json
Remote deploy often fails when Mbed program uses wait_us() or wait_ns(). LPC1768 board goes then into deep sleep. Issue is not reproducible for thread_sleep_for
Remote deploy often fails for non-DAPLINK deploys. We recommend setting use Daplink preference to true in File->Settings->Open Preferences->Run
Tried it on two mbed LPC1768s. Mbed Flash drive went away on office PC running Windows 10 on both after firmware update. Flash drive shows up on my newer Win 11 PC at home and compiler can now flash code and run on that PC.
Debug and breakpoints still not working 100% of the time on blinky baremetal example for me here. I was able to hit a breakpoint a few times, but often got an error - typically RDDI - Error 13, or 22 or 57. It also seemed to stop a lot on a return semihost sys_exit line that I never set a breakpoint on whenever I hit continue.
Thank you for taking it for a spin. Mbed flash should be back on Windows. You need to keep it connected a little bit longer after the first time after the board is running a new firmware as Windows may be doing a scanning. It may take even up to 1 minute. Please let us know if it went back.
It also seemed to stop a lot on a return semihost sys_exit line that I never set a breakpoint on whenever I hit continue. - This is the issue I mentioned about in known issues. Debug is stuck in semihost when device goes into deep sleep mode. We are working on improving it
The mbed I put on the Win 11 PC - It’s flash drive now shows up fast in Win 10 this morning and it pairs with DAPlink now, but says device unsupported when I build. The second one is still MIA in Win 10 after several minutes. I will take it home tonight and see if the same thing happens on it when I use Win 11 on it. The DAPlink device shows up, but the compiler cannot connect whenever the flash drive is missing.
I played with deep sleep a few years back on this chip - I recall reading someplace obscure in a manual that you can’t wake from deep sleep in debug mode on the LPC1768 - and I never got that sleep mode to wake up! Might have been NXP Application Note AN10915?
Thank you for this wonderful update, I have a few questions:
Will the update also work on LPC1788 and LPC4088? Otherwise, what would it require for it to be compatible with these models?
Is there a way to use it with boards like LPC1768 MINI DK (schematic) that do not support drag and drop updates?
If the above questions yield negative answers, what would be the recommended approach to implement WebUSB communication with LPC1879 MINI DK or LPC1788 and LPC4088 on recommended boards?
Thank you. We are still working on improving firmware for LPC1768 even further to make it more stable with webUSB. Especially when it comes to debugging.
LPC4088 supports DAPLink. We added support for webUSB in DAPLink few years ago. This board should be fully supported in Keil Studio Cloud after you update DAPLink firmware on that board. You can find it here: https://daplink.io/
LPC1788 - I’ll investigate how much work will it be to add a webUSB support the the firmware for that board.
LPC1768 MINI DK - It won’t be easy to enable webUSB feature on that board. That functionally is heavily based on drag & drop functionality.
This board is very interesting, would you recommend it to work with LPC4088? EA LPC4088 Display Module | Mbed
One of the key features we are interested in is using ADC for impedance measurements calculations.
Could you explain the issue? Is this a general issue with Linux, or with this board specifically? Is this something that may get fixed in the future or it is not technically possible?
If I use the “detect board using webusb” functionality on the Keil homepage, this seems to work correctly and my board (NXP mbed LPC1768) is detected correctly.
The board can be indeed correctly discovered on both Keil website and inside Keil Studio Cloud. Unfortunately at the moment you will not be able to claim the webusb interface on the board. It will prevent you from writing a data to it so deploy/debug and serial monitor functionalities will not be possible on Linux. We are investigating this issue and trying to find a solution.
This issue is limited only to this board. After enabling correct udev rules other boards that uses DAPLink work correctly on Linux.
I ran into some issues relating to the serial communications of the LPC1768 and PCs/Laptops. I have found a work around after some investigations and this is what I found (note that I have copied my finding across from github issues):
" After conducting some further investigations, it would seem that the issue is related to windows drivers being out dated for the LPC1768. I am not sure how to update the windows drivers as all the drivers I have are upto date as is windows its self. When I try to update the device drivers manually through device manager, windows states that the most up to date drivers are already installed.
I decided to update the firmware for the LPC again as a hell Mary and found that after doing so serial communications began to work without issue. Later I needed to use the LPC with my laptop for a group project that I am working on. Naturally I installed MBED Studios onto the laptop and connected the device only to find that serial communications once again didn’t work. Checking the windows driver versions for the LPC I found:
driver version as 6.1.7600.16385 dated 06/2006 with the driver provider as Microsoft (On my Laptop)
driver version as 10.0.19041.746 dated 06/2006 with the driver provider as Microsoft (On my PC)
Considering that the firmware update of the LPC resolved the issue of communications failure on my PC, I again updated the same LPC using my laptop. After doing so I could confirm that the new windows driver details on my laptop displayed:
driver version as 10.0.19041.746 dated 06/2006 with the driver provider as Microsoft
It would seem that the act of updating the LPC’s firmware, regardless of wither or not LPC needs it, forces windows to update its driver for the device. This however, would suggest that I would have to repeat this process for each Laptop/PC that needs to interface with the LPC which is less than ideal.
To Summarise:
Windows drivers appear to be outdated for the LPC1768
There appears to be no feasible way of updating windows serial driver through MBED as the driver installer (available here) is for windows 7 and “…on Windows 8 or newer; serial ports work out of the box with these versions.”, though this may not be an accurate statement
The windows 7 serial driver installer available to download from the above link does not commence to download
Installing/Reinstalling MBED studios does not update the windows driver
Hopefully a more practical method of updating the windows driver may be implemented soon, perhaps a revision of other platforms serial abilities needs to be undertaken to high light this issue with any other devices.