You may have noticed that we have had a downtime of about 45 minutes. All systems should now be back up and functioning normally.
The cause was scheduled maintenance which did not go as planned, and is related to the earlier outage this previous weekend.
- Scheduled network maintenance caused an unexpected panic and reboot of one of our two redundant storage nodes.
- Storage automatically failed over to the other storage node, but a misconfiguration meant that that our servers were not able to access the storage on the other storage node
- Due to another misconfiguration, our monitoring/alerting systems did not detect the problem, and so remained undetected for several hours
- After investigation, we were advised to replace the motherboard of the failed storage node by our vendor
- The replacement of the motherboard took place, which should not have caused any downtime due to the redundant node
- For an undetermined reason, the failover yet again failed to work (in a different way to before) and mbed had to stay down while the motherboard was replaced.
We will be investigating the root causes of these problems with our in house storage specialists and the vendor to avoid a recurrence of the problem.
Apologies for the inconvenience, and I will update this post with more as I know it.
We are happy to announce a faster, smarter version of the mbed Online Compiler, which is now rolled on the live servers.
There's a huge amount of changes behind the scenes, which will give a noticeable performance boost to all areas of the Compiler.
We've enhanced multiple aspects of the Compiler - rendering and interactivity, server requests and caching, and notably - the build system.
Render speed improvements
The mbed Compiler's responsiveness when rendering UI elements - Editor, panels, bars, buttons, tabs etc - is crucial for a positive experience when using the IDE.
This is highly dependent on your computer CPU performance and browser family, thus we took an older computer hardware configuration as a base for comparison and then implemented browser-specific optimizations for each browser family to maximize performance.
The chart below illustrates the improvements per UI elements per browser:
Values may be different across computer systems, though the proportion between the values of the old and new Compiler should be the same.
"Other" represents rendering routines that have been optimized or dropped entirely, so they no longer consume CPU or rendering time.
The next chart represents the time taken to fully render the IDE when initializing and when resizing the browser window:
These charts show that the fastest browser with the mbed Online Compiler is a WebKit-based browser like Chrome or Safari, though Firefox is still a solid option if you're looking for an alternative.
Server side improvements
The server side also plays important role in how one interacts with the mbed Compiler.
We have enhanced and enabled the server side caching for the whole IDE interface and in the same time we've reduced the number of server requests by joining most of the images in 2 distinctive image collections. By doing so the mbed Compiler now fully loads in under 1 second with 30% less requests:
This is also dependent on your internet connection. The values above represent the time taken to generate server responses and does not take into account your actual connection speed and delay.
Generating a list of revisions in Revisions History has been optimized for speed by reducing the number repository backend calls and improving the quality of the processed data:
And last but not least, we've improved the build system, which is now over twice as fast!
This is due in part to a complete redesign of the build system, completed earlier this year. We now distribute build jobs evenly among a flexible number of backend build servers, ensuring both that performance is maintained even at our busiest times, and we can also easily add as many build servers as are required to meet demand. We currently handle about 2,100 compiles per hour, and the new system ensures we can scale to handle a lot more in the future.
That part addresses the scalability and reliability and gave a slight speed increase, but what has really boosted the compilation speed is the next improvement - we now simultaneously compile each of your source files in parallel across as many as 8 CPU cores. Once all the objects are created, we then link and prepare the binary as a final step. This change means that we can make the full use of our build servers, and you will hopefully see a noticeable increase in compile speed, especially for larger programs.
The chart below shows the comparison between the old and new Build System for 3 programs:
The bigger the program is, the faster it compiles compared to the old build system!
We've also improved incremental (non-clean) compiles, for when you're doing incremental edits and compiles in between:
Give it a try for yourself, and you might even find that a program compiles faster using the mbed build system than on your desktop system - thanks to our investment in the mbed build system, which has been designed with horizontal and vertical scalability in mind.
In a previous mbed Compiler release we've introduced the Interactive mode feature, which allows quick definition lookups using Ctrl+click combo on words in code.
This now takes into account your currently selected board and attempts to filter out code definitions intended for other platforms in multi-platform libraries like the mbed SDK and similar libraries. Effectively it reduces duplicate definitions for when using such libraries.
The base convertor (when clicking numbers) has been enhanced to support clicking on floating point and negative numbers, and also reports the float/double precision and unixtime representation of a value.
The definition tooltip UI has been redesigned, with a better focus on the definition itself, yet we've kept the definition and documentation reference links as buttons.
The definition tooltip will also try to adjust to your screen size and the amount of data to be displayed in attempt to deliver better representation of the definitions:
Additionally it is no longer required to hold Ctrl - just click anywhere in code!
Warnings and errors during compile
Have you ever wanted all compile errors and warnings to be somewhat more visible? May be like highlighted lines in your code? Well, that's one of the new features of the mbed Compiler.
When an error or a warning occurs during compile, the Editor will highlight the reported lines in the currently open files, and will remember compile messages for files that aren't open yet, so as soon as you do it will highlight them as well.
The column number of a highlighted line can be clicked, which will display and position a tooltip with the compile message just under the reported location:
To clear highlighted warning/error lines you can either modify them or close and reopen the file to clear them all.
New program templates
We've added support for multiple templates when creating a program, including the option to create an empty program.
This takes into account your currently selected board and offers program templates which we verified to be working with that board and that are also interesting and/or easy to start with.
If you'd like a program of your own to be added as a program template for a board, then write us at firstname.lastname@example.org.
The following features have been enhanced to deliver a better or new functionality:
- "Format Code" will format/indent only the selected code with text selections in the Editor.
- "Compile Output" panel now supports selecting (including Ctrl+A combo) and copying of multiple compile messages. The format of the copied messages has been improved as well.
- The column number for compile messages have been restored.
- "All changes" in Revision History will now highlight code based on the mbed colorizing standard. It will also properly indicate line numbers for diffs.
- A new dependency progress dialog will appear when attempting to commit, update or publish a repository. In the old mbed Compiler this was a silent check that especially on big programs can leave the impression that the Compiler has hung.
- The "Who" field in Revision History will now handle email addresses, allowing you to click them.
- The platform selection dialog is now slightly bigger and supports more than 10 platforms (virtually unlimited). Also the pinout images have been resized to fit better.
- A new ZIP export option is available, which exports all internal repository files (.hg, .hgignore) of a program, allowing you to quickly setup an offline development environment. The legacy ZIP export option has been renamed to "mbed Online Compiler" and the new one replaces it.
- The mbed Compiler now shows a "Beta mode" button if you have beta mode enabled. Clicking it will take you to the beta mode page if you want to turn it off. If you do - remember to refresh the mbed Compiler.
- You can now convert mbed library builds into normal library with a single click by using the "Covert to Library" context menu option.
- We've prepared a new introduction video to the mbed Online Compiler.
If you've read this far then you must be really excited about the new mbed Online Compiler!
Let us know what you think on http://mbed.org/forum/bugs-suggestions.
mbed fest in automn 2013 tour in Japan was held in Nagoya (1st Ameyoko-bldg, Oosu), Yokohama (ARM K.K office) and Sapporo (SHARE - Coworking X Fabrication) on 14th to 16th Sept 2013. It is a mbed developer meet-up event. Attendees are mbed core users, beginners and electronics hobbyist. Some of them show demos about their work with mbed. It was a great event for getting useful information from variety of developer and good for networking.
Japanese information is here.
This was the third mbed fest in 2013 and about 100 developer attended this meet-up event. Internet live streaming (using Ustream) was also available and 1,637 unique users watched the event!
The meeting was organized by mbed fest planning committee and the following partners.
[Common presentations in three days]
- mbed team in ARM (Simon Ford and Chris Styles): "What's New and What's next"
- NXP @tedd_okano : "What is mbed?"
- @ytsuboi : "Introduction of mbed LPC1114FN28"
- ARM K.K @toyowata : "About offline compiler and CMSIS-DAP debug environment"
- @suupen : "Creating transparent 7-seg LED for clock"
- Kiyoteru Hayama : "Micto mouse and robo tracer using mbed"
- "Introduction of MakerLab in Nagoya"
- Keroria : "Hardware beggineer meet mbed with electronic hobby"
- @okaji : "About Gugen"
- @lynxeyed_black : "beneﬁts of running Lightweight Java VM on Cortex-M0+"
- @en129 : "Cylindrical dot matrix display using mbed"
- @ohwada : "Rolling m3pi"
- @ynotsu : "Mac-san's lightning talk"
- Takeshi Kinoshita : "Biosignal and mbed"
- Kiwamu Okabe (Metasepi Project) : "mbed+Haskell"
- Kuzushi Mukaiyama : "About works with mbed"
- @jksoft913 : "About mbed robot base board"
We really enjoyed the presentations and lots of demos. We hope to held this type of mbed user meeting in the new places next time!
We (mbed-fest planning committee) are already planning for next year, and if anyone wants to join the committee to run mbed-fest in other locations, please contact me!
There are still a few places left, so if you haven't registered yet, please do so as soon as possible. We are especially looking for independent developers and heavy users of mbed who are actively working on projects at the moment. Why are we looking for you?
“Our research says that by 2018, 50% of the internet of things solutions will be provided by startups which are less than 3 years old."
- Jim Tully Research Director at Gartner
We’re looking forward to sharing our news and plans, and working with you all to shape and develop the mbed project. We’ve had a great response from partners and contributors wanting to attend and contribute, so this should be a very productive event.
The day will include news and announcements on the mbed roadmap and partners, key technology introductions with a focus on IoT, formation of new projects and working groups, lightning talks open to anyone, and a chance to meet the mbed team and other mbed partners and contributors to allow us to work together on shaping the future of the mbed project.
The event is scheduled for Monday 28th October @ Techmart, Santa Clara, California and will start at 8.30 and finish at 5.30, with an optional evening social afterwards.
The event will run for a full day, and include:
- ARM's IoT Vision
- mbed Project Mission, Announcements, Activities and Roadmap
- Key Technology and Industry Challenge Discussions
- New Projects Proposals and Working Group Formations
- Lightning Talks
The day will be followed by an evening of drinks and further discussion nearby.
Some of the registered attendees
NXP have informed me that due to overwhelming response, all the vouchers have now been redeemed.
The board is now available for purchase directly from Embedded Artists or from your local NXP authorized distributor. If you did receive a voucher but have not used it yet, note that it is only valid until 30th of October 2013!
NXP have announced the availability of the mbed enabled NXP LPC800-MAX board, along with a promotion to make the hardware available for just 1 Euro.
The LPC800-MAX is based on NXPs LPC812, a Cortex-M0+ that is aimed at 8/16 applications where additional functionality and performance is required. The board is primarily an Arduino compatible form factor, but as the LPC812 has a full crossbar for IO routing it can also support the standard pinouts for LPCXpresso and the mbed DIP form factor.
Visit NXPs LPC800-MAX promotional site for more details on the offer :
To enable as many projects as possible, the LPC800-MAX board includes additional analog (A/D and D/A) and digital GPIO provided by I2C devices. These parts are likely to find their way into many designs based on the LPC800-MAX reference design, and so we want to encourage a good quality Component Database entry for each.
The Component Database is a feature we introduced recently to host reusable libraries for different hardware, middleware and IoT services that you can use with ARM Microcontrollers. These components can be used as building blocks for quickly developing prototypes and products.
Components and the associated libraries, examples and documentation are created and added to the database by mbed developers, component manufacturers and service providers. The goal is to create a canonical database of rock-solid code and resources for every useful component that can be used with ARM microcontrollers.
As an incentive to get these I2C parts into the Component Database, NXP have provided a few boards that we can give away in exchange for making the entry. If you would like to make the entry for one of these parts, please email email@example.com providing :
- mbed User name
- Full postal address
- Contact phone number (needed by Fed Ex)
We're looking forward to seeing what the mbed community does with the LPC800-MAX - feel free to post to the forum to show everyone what you've been doing!