Earlier this year, Arm announced the open beta of Keil Studio Cloud, our new browser-based IDE. It’s free to use, comes with a powerful, modern editor and as the name suggests, supports the wider Arm CMSIS microcontroller ecosystem, as well as Mbed OS.
Keil Studio Cloud builds on technology that we have developed for Mbed Studio and the Mbed Online Compiler, with the aim to provide an easy-to-use rapid prototyping environment that can be used for IoT, ML and general embedded development.
Keil Studio Cloud is the natural successor to the Online Compiler, which we will be phasing out. Read on for details on timeline, migration steps and further information on hardware support.
Introducing Keil Studio Cloud, the successor to the Mbed Online Compiler
The Mbed team first released a browser-based IDE in 2010, making it quicker and easier to write software for Arm based microcontrollers. Since then, the Online Compiler has been used by hundreds of thousands of developers around the world, and many embedded products have started life there. It’s also where many of you learned to write C++ for microcontrollers thanks to wide adoption for university teaching.
Keil Studio Cloud is a big step up from the Online Compiler, bringing much better code hinting/IntelliSense, comprehensive git source control integration and direct development board interaction from the browser. Like the Online Compiler, Keil Studio Cloud requires no installation and provides you with an integrated workspace.
17th December Update: my colleague Christopher Seidl has produced a short video demonstrating the Mbed-focused features of Keil Studio Cloud, that you can watch below:
Keil Studio Cloud is based on a modern IDE framework and gives Arm the opportunity to develop features that would not have been possible with the Online Compiler. Our codebase gives us the flexibility to deploy to the desktop (in the guise of Mbed Studio), or to the browser, or even as Visual Studio Code extensions in future.
If you’d like to learn more about the background, technology and features of Keil Studio Cloud, check out the Mbed OS Technology Forum YouTube live stream from the summer:
Timeline for Online Compiler retirement
Our development focus is now on Keil Studio, and the time is right to phase out the Online Compiler. We intend to run the Online Compiler for a further 12 months after which it will be unavailable. One reason we have chosen a long end-of-life period to give academics and other educators an opportunity to migrate labs and teaching material.
We will be sending out reminders over the next 12 months and will also provide a final date closer to the time.
If you have any questions or require support, please get in touch using the Mbed forum. If there are technical issues preventing you from migrating, then please let us know and we can consider them for prioritisation.
What’s the difference between Keil Studio and Mbed Studio?
Keil Studio Cloud is the evolution of Mbed Studio, using the same underlying IDE framework and codebase, adapted with additional support for the CMSIS ecosystem. As with the other Keil tools (such as Keil MDK), our aim is to support a wide range of middleware for as many Arm based embedded devices as possible. Keil Studio Cloud is currently available in the browser, whereas Mbed Studio is a desktop IDE.
Our long-term intention is to provide a free-to-use desktop version of Keil Studio, eventually replacing and renaming Mbed Studio. You can continue to use Mbed Studio and when we release the desktop version of Keil Studio, Mbed Studio will transition to Keil Studio through the usual software update process.
Mbed OS, Mbed 2 and CMSIS support
Keil Studio Cloud fully supports Mbed OS 5.12+ and Mbed OS 6. Build and run support is available for Mbed 2 and earlier versions of Mbed OS 5, and we use the same underlying tooling to build Mbed as the Online Compiler.
Additionally, Keil Studio Cloud can be used with software from the CMSIS-Pack framework. This includes FreeRTOS and Keil RTX5. Currently, we support examples for CMSIS from keil.arm.com, which can be imported into Keil Studio Cloud in a similar manner to Mbed projects.
Microcontroller and development board support
One of the features we're really excited about is direct device interaction from Keil Studio Cloud, including the ability to flash a development board and view the serial output, all from the browser with no need to install any local tools. This uses a technology called WebUSB, which is supported in Google Chrome and Microsoft Edge. It also requires compatibility with CMSIS-DAPv2 or STLink v2, so you may need to update the firmware on your development board in order to take advantage of device interaction from Keil Studio Cloud.
Debug boards from your browser
You can also start a debug session on compatible devices, allowing you to step through your code and set breakpoints. If you have a development board with a supported debug interface, or a compatible debug probe such as ULINK plus, please feel free to experiment with our debugger! We’ve also introduced a memory inspector for Keil Studio Cloud, which enables you to follow variables through into a view of the device memory. You can learn more about debug features, settings and troubleshooting in our docs:
DAPLink devices can be flashed from Keil Studio Cloud by selecting the DAPLink flash preference. This falls back to the familiar “drag and drop” style of programming, allowing the device to be flashed. At a minimum, you can compile an application for any development board that is supported in Mbed OS. As before, a binary will be downloaded to your computer that can be “drag-and-drop” programmed onto your board.
LPC 1768 interface firmware
We are in the process of updating the interface firmware for the NXP LPC1768 “Mbed board” which is still used extensively in everything from teaching material to industrial applications. The LPC1768 used an early precursor to DAPLink, so does not work out of the box with Keil Studio Cloud today.
We hope to be able to share the updated firmware soon, which will allow you to detect and program the LPC1768 directly from Keil Studio Cloud.
The source control available in the Online Compiler is based on Mercurial. Keil Studio Cloud primarily supports git, and we’ve included hg -> git migration workflows since git is far more widely adopted. As an aside, hg -> git conversion is also supported directly by GitHub.
You will find that the source control in Keil Studio is familiar if you’ve used VSCode, but if not, you can learn the key concepts in our documentation.
We recommend that you keep projects under source control management as best practice. Doing so allows you to retain the full edit history of your code, collaborate on it with colleagues and revisit previous versions or releases of your software if needs be.
Keil Studio Cloud allows Mbed libraries to be added from os.mbed.com or from git source control (for example GitHub). This functionality is identical to Mbed Studio, with the exception that we strongly encourage you to work with tagged releases of Mbed OS to speed up imports and builds.
Workspace and Online Compiler migration
As with the Online Compiler, the Keil Studio Cloud workspace acts like a filesystem for you to store your projects. We regularly back this filesystem up and monitor it to ensure the integrity of your files.
To make migration from the Online Compiler to Keil Studio Cloud easier, you can copy your old Online Compiler workspace directly into Keil Studio Cloud. If you have projects that you would like to migrate, this is the quickest and easiest way. You will need to publish any unpublished libraries in your projects to migrate them successfully.
Again, if you need support with migration, then please get in touch on the Mbed forum.
Key differences between Keil Studio Cloud and the Mbed Online Compiler
If you are familiar with the Online Compiler then there are a few points to keep in mind:
- Target selection is no longer based on adding boards, so you can select a development board directly from the IDE dropdown
- Source control is exposed more transparently than the Online Compiler
- Keil Studio Cloud uses the concept of an active project, which is now selected from the project control dropdown or in the right-click context menu
- Libraries are managed for an entire project, with library version selection accessed from the library management panel
- Software search (e.g. for libraries or projects) is not currently built into Keil Studio Cloud, and libraries can be added either directly from os.mbed.com or git providers such as GitHub
- Integration with GitHub requires you to link your Mbed account
- Libraries are exposed as source code, allowing you to view their inline comments/documentation directly, rather than as rendered Doxygen
Keil Studio Cloud forms part of our future IDE plans and gives us a great framework to introduce new functionality, ranging from the professional features that you can find today in Keil MDK such as Event Recorder, through to newer technologies such as microcontroller-based machine learning.
In this blog, I've focused mainly on the Mbed support in Keil Studio Cloud, but a key area of development for our team is the CMSIS ecosystem, which includes the RTOS on which Mbed OS is built (RTX), hundreds of libraries (including familiar stacks such as Mbed TLS), and fundamental device support for thousands of MCUs. We intend to roll out regular updates to this feature set, so keep an eye on progress here if you develop in C or use software such as FreeRTOS, Keil RTX, or SDKs from microcontroller vendors.
Since we’re working in the browser, you’ll see regular updates with bug fixes, features and new examples. Keep an eye on the release notes in the IDE to see what’s changing. As always, we really appreciate the feedback we receive and will use it to help prioritise our backlog. You can provide feedback directly in Keil Studio Cloud, so please get in touch.
Get started and join the open beta at studio.keil.arm.com.
You need to log in to post a discussion