Skip to content

Read the blog

This section collects some of the stories initally posted on the blog of the main embedXcode website.

Since 2010, the logo of embedXcode have gone through 3 generations with 6 versions.

2010-2014: Remember the first generation

The project started in January 2010 with the Arduino and chipKIT boards, and then the Wiring and LeafLabs boards.

The first embedXcode logo took a quarter of the icons from each of the IDEs. When Energia was launched, the rocket of its IDE was added on top to get the second embedXcode logo.

The first public version embedXcode was launched in January 2012.

It became quickly clear that there were two kinds of users. Some wanted to focus on core features while other were looking for more advanced features like project sharing and external debugging.

This led to the embedXcode+ edition, based on donations. The logo for the embedXcode+ edition just added a plus to the logo of the standard edition.

2015-2018: See the second generation

With more platforms being added, the logo had to change to suggest this wider choice.

There were as many different IDEs as platforms, customised to the colours of the manufacturer. So changing the targets board meant switching IDEs, while it was just selecting the board on embedXcode.

The second generation was introduced in September 2015 with the forth logo, and refined one year later with the fifth logo, taking some inspiration from flat design

It conveyed the sense of diversity with 18 squares, which colours were taken from their IDEs; and of unity, with strong eX and eX+ letters

The embedXcode logo was also adapted to each platform, with different shades from their IDEs: tile for Arduino, red for Energia, grey for Teensy. Utilities were in black, grey and reverse white on black

2019+: Discover the third generation

Today is launched the third generation with the sixth version of the logo.

The squares become circles, migrate from left to bottom, and clear the space for the eX and eX+ letters.

The background colour turns white to improve contrast and readability.

The logo keeps the same logic and is adapted to the different platforms and utilities.

Learn about disruptive technology and frugal innovation

During the last 6 years, I’ve been surprised to see that large corporations and national agencies are using embedXcode, and thus solutions based on the Wiring, Arduino and Energia frameworks.

I just wondered: What is the rationale behind? I’ve searched for answers and found two: disruptive technology and frugal innovation.

Disruptive technology

Disruptive technology is less about content than about usage and accessibility.

Contrary to Schumpeter's creative destruction, Christensen's disruptive technology is not exclusive and opens new markets

  • It lowers the entry barriers of complexity and makes technology affordable for new entrants. In doing so, it enables technology for new users and opens the doors to mass market. For example, the Wiring, Arduino and Energia frameworks offer a higher level of abstraction, with a simplified set of functions, perfect for new users. This higher level of abstraction, mostly based on objects, is not exclusive: underlying libraries and register-level functions are still exposed.

  • The business model is innovative too. The hardware and software are open-source, and software is free: everyone can contribute. This entitles co-development and co-creation. For example, the contributed library Galaxia exposes the RTOS elements for Energia MT.

  • Actually, each new feature and library contributed by the community increases the value for everyone. It is no longer the rule of diminishing returns, but of increasing returns. The larger the community, the higher the value network.

Frugal innovation

Frugal innovation, or « doing more with less », is a normal way for emerging countries and a necessity for developed countries.

The title says it all

  • The first aspect is substantial cost reduction, mostly fast-track development and shortened time-to-market, thanks to the use of disruptive technologies. First used for fast prototyping, frugal innovation is expanding to finished products, as the prototypes are good enough for production and market.​

  • A product developed through frugal innovation focuses on core functionalities, mainly the 20% of the features that makes 80% of the value for the user. This also reduces complexity, which eases maintenance and lowers costs. ​

  • For the 20% of the features, the core functionalities are optimised to achieve a high level of performance. For example, libraries rely on industry-grade SDKs, and achieve the same ultra-low level of power consumption as their traditional alternatives.

Conclusion

I'm glad embedXcode actively contributes to those trends. ​The questions are now: Are hardware and software suppliers aware of those trends? Are they ready to complement their traditional offerings with lighter solutions?

Assessing macOS 11 and Xcode 12

I've assessed macOS 11 Big Sur public beta and Xcode 12 beta 6 on an iMac 2019.

macOS 11 regressions

Software size

The first difference is the inflation on the size of the software.

The System folder of macOS 11 Big Sur takes twice as much space as macOS 11.15.6 Catalina, 22 GB instead of 11 GB.

Xcode 12 weights 28 GB against 18 GB for Xcode 11.

Screen

Same happens with the screen.

The resolution should be scaled one step from Default to More Space in order to display the same content as with the previous version.

Kernel extensions

Some boards requires drivers to upload or display a serial console. Some of those drivers rely on kernel extensions, or .kext. The kernel extensions are said to be replaced by system extensions.

I tried and installed two drivers, the SciLabs USB driver and the propietary FTDI driver required by the LaunchPad CC3220, but the process failed for both.

I don't know if and when those drivers will be replaced.

Security features

Surprisingly, I haven't faced any security-related issue when performing a fresh installation of embedXcode, or when using the different utilities.

However, the public beta might not have included all the new security features.

Xcode 12 regressions

Two key features depend on the legacy build system: the check-as-you-type feature and the click-to-error feature .

On Xcode 11, the legacy build system is selected through the menu File > Project Settings...

Build system

Xcode 12 only features the default build system, as the legacy build system is deprecated.

However, the legacy build system is still temporarily available on Xcode 12. If selected, a prominent warning is displayed on the dialogue box and on the Report Navigator.

Warning

The legacy build system will be removed in a future release.

Check-as-you-type

On Xcode 11, the check-as-you-type feature analyses the code when it is typed in, and raises warnings and errors, for example in case of unused variable or mistyped syntax.

This feature is no longer available on Xcode 12 with the default build system.

Click-to-error

On Xcode 11, when a compilation fails and displays a list of error, clicking on one error from the Report Navigator or the Issue Navigator opens the related file and shows the incriminated line of code.

Xcode 11 displays the error message right on the line and often suggests a fix.

This feature is no longer available on Xcode 12 with the default build system.

Asking Apple for help

I don't know the reasons for removing the previous build system from Xcode 12. Why the new build system no longer manages the output from make? Is the incompatibility coming from the make system or from the GCC tool-chains? What are the alternatives? I remember that Xcode 5 dropped the support of GDB.

So I filed a ticket FB8572278 with the Feedback Assistant at the Developers Tools section and asked for keeping the legacy build system, or providing a solution to manage the output from make and the GCC tool-chains.

On a first answer, I was asked to explain "what is a 'CCG toolchain'?".

Can you please provide more details about your use case? Specifically, what is a "CCG toolchain" and why is its use inherent to the legacy build system?

On a second answer, Apple finally acknowledges that Xcode 12 no longer supports the GCC tool-chain, and that this deprecation may rise other more general issues.

In addition to not officially supporting CCG (with new generation or legacy systems), you may be experiencing more global compatibility issues that we need to look at more closely.

Surprisingly, ​Apple mentions this critical change nowhere in the Xcode 12 release notes.

More to come

By chance, Xcode 11 still works on macOS 11 Big Sur, but for how long?