Skip to content

Read the blog

This section collects some of the stories initially 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 proprietary 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?

The updated releases of macOS Big Sur 11 Beta 9 and Xcode 12.2 beta 2 do not show any changes.

The legacy build system is still available with the same prominent messages about its deprecation and future removal.

The Apple case

How can a company loose a customer? Here is the Apple case.

The case covers hardware with my last two MacBook laptops, a MacBook Pro 15” and a MacBook Pro 13” 2019 ; software with the regressions introduced by the new Xcode and macOS ; and raises a final question: Is it time to switch back? .

The MacBook Pro 15” mid-2015 case

The misadventures of a MacBook Pro 15”

Initially posted on 19 November 2019

I own of a MacBook Pro 15” mid-2015, mainly used for the development of embedXcode.

Last June, Apple issued a 15-inch MacBook Pro Battery Recall Program . Soon after, the FAA issued a Safety Alerts for Operators (SAFOs).

The FAA is aware of the recalled batteries that are used in some Apple MacBook Pro laptops. In early July, we alerted airlines about the recall, and we informed the public. We issued reminders to continue to follow instructions about recalls outlined in the 2016 FAA Safety Alert for Operators (SAFO) 16011, and provided information provided to the public on FAA’s Packsafe website: https://www.faa.gov/hazmat/packsafe/

As a consequence, American airlines banned all MacBooks Pro 15” from both registered and carry-on luggage. So did the EASA in Europe.

Media coverage was extensive, including The FAA has banned recalled MacBook Pros from all flights — like any other bad battery in The Verge or ​Apple’s Flawed MacBook Pro Still Banned From Flying As Owners Demand More Details on Forbes.

What I’ve done so far

Obviously, I checked whether my MacBook Pro 15” was affected. It didn’t seem so, but the wording wasn’t clear.

As I had a conference in the United States, I asked my travel agency to check. The travel agency ensured me the airlines I was flying were enforcing the total ban.

So I had no option but to buy another MacBook, as I couldn’t take the risk of being banned from the plane or having my laptop being confiscated at the airport.

Asking Apple for answers

Back home, I sent Apple two letters about this case and asked for a compensation. No answer.

​So I called the Apple Support twice, and was given two answers:

  • Apple is not responsible for the ban, the FAA is. So please ask the FAA, or the airlines, or the airports, or the TSA, for a compensation.

  • Ask the airlines for an exception by showing that your serial number is not affected by the recall.

Understanding Apple’s answers

Let’s take a second look at the answers from Apple:

  • As a European citizen, I have no option whatsoever against the FAA, American airports and security agencies like the TSA. Any of those organisations would say rightfully Apple is in charge.

  • The 15-inch MacBook Pro Battery Recall Program does not certify a given serial number is safe. It only stipulates it is either “not in the affected serial number range” or “already been serviced”.

What’s next: switching back

I was expecting Apple to offer a better management of this recall, and a pro-active communication after the total ban from airlines. How many consumers are no longer able to travel with their MacBook Pros?

Lack of product quality, lack of clear communication, lack of respect towards customers, lack of support, lost confidence: it is time to leave Apple and switch back.

The MacBook affair, an update

Initially posted on 18 February 2020

I sent a letter to the legal department at Apple’s Cupertino headquarter. I was called back by an executive representative, who sticked pretty much to the official position previously exposed.

  • She reaffirmed that Apple is not responsible for the total ban recommendation of the MacBook 15” Retina by the FAA and the enforcement of this recommendation by the airlines.

  • She apologised for the suggestion I was given previously to ignore and by-pass the rules, and carry the laptop on board.

  • However, she did acknowledge that the wording of the answer provided by the check page was confusing.

As I am not a lawyer, my last option is to reconsider my suppliers and exercise my purchase selection, avoiding Apple products and exploring alternative solutions.

The MacBook affair, a new update

Initially posted on 14 September 2020

After The MacBook affair, an update , I paid a visit at the 15-inch MacBook Pro Battery Recall Program page to check whether the wording has been improved.

Alas, the page remains unchanged, with the same confusing and misleading answer, in both English and French versions.

For one customer taking the take to report an issue, how many just change and take another supplier? ## The MacBook Pro 13” 2019 case ### Apple support: a complete disaster Initially posted on 07 July 2020 Today, my MacBook Pro 13” came back from Apple Support after a recall for the Keyboard Service Program for MacBook, MacBook Air, and MacBook Pro .

Up works, down fails

Many surprises:

  1. The MacBook came back dirty, with finger traces on the screen and dust on the keyboard, when I sent a cleaned laptop.

  2. The keyboard was said to be fully functional, although the down-arrow still doesn’t work as expected.

  3. No mention of and no solution for the discolouration of the case on the left and right of the trackpad.

  4. No mention of and no solution for the excessive heat with the ventilators at full throttle when performing standard tasks.

Not the expected colour

So I took another appointment with a Service Centre, as all the Apple Stores are fully booked.

This is not the quality of service I was expecting from Apple and I’ve paid for. Should I call a consumer association to get my laptop repaired?

How To loose a customer—even if you don’t care

Initially posted on 17 July 2020

After four attempts, the MacBook I’m using for production was finally serviced and repaired on an Apple Authorised Service Provider.

  • On the first attempt, I was presented an invoice I refused to pay, as the laptop was under warranty.

  • On the second attempt, the appointment at an Apple Store was cancelled with a short two hours notice.

  • On the third attempt, the laptop was collected by a carrier but was returned unrepaired and dirty, with greasy fingers marks on the screen and dust on the keyboard.

  • On the forth and last attempt, the Apple Authorised Service Provider checked the laptop and repaired it.

Danger ahead

Actually, the keyboard, the battery and the top cover were changed. When I asked how to prevent those issues from appearing again, I was answered “Nothing!”, as the culprit is the very design of the laptop.

I don’t know how much money this repair has cost to Apple, but my guess is Apple managed to pass everything on to subcontractors and suppliers.

But I do know how much it has cost to me. Calling the support and opening a ticket (4 times), making an appointment (3 times), backing-up and restoring the computer (3 times), going to the repair shop (2 times): the time I’ve spent to get my laptop repaired actually exceeds the price of the MacBook. And I am not including the lost revenue as I’m using that laptop for production.

Safe zone

This is just unacceptable. I have a strong feeling that Apple no longer focuses on quality and ignores its customers.

So Apple, you’re loosing a customer, but you don’t really care, do you?

The new Xcode and macOS regressions case

WWDC 2020: Apple, tool or toy?

Initially posted on 27 June 2020

The major announcement at the WWDC 2020 was the transition of processors from Intel to home-made ARM-based, to be started by the end of 2020 and completed by 2022

Two years of FUD ahead

For embedded systems development, this opens a two-year-long period of fear, uncertainty and doubt.

An obsession for new features

  • Are the different embedded platforms going to maintain the tools to the current Intel processors?

  • Are they going to update the tools to the new processors?

  • What will happen to the platforms that do not transition?

  • How long fixing the inevitable regression bugs is going to take?

It may be too early to answer those questions, but I expect many embedded platforms to reconsider their support for macOS.

A self-centered walled garden

Fundamentally, Apple doesn’t seem to pay much attention to external non-Apple platforms.

First tests with Xcode 12 are successful,
although some features may be removed in future versions.

As long as the target stays within the Apple eco-system, tools and universal apps should make the transition relatively easy. But outside this walled garden, things become really difficult.

This self-centered approach has its merits, but is not compatible with embedded systems development.

Professional tool or consumer toy?

The last point is the absence of long-term support. Apple sells consumer products, not professional solutions. The implied frantic refresh rate, obsession for new features and mastered planned obsolescence come at the expense of stability and quality.

If the current software configuration with macOS 10.15.5 and Xcode 11.5 may be frozen and kept unchanged, I am less confident about hardware, as my last two MacBooks have experienced quality issues and recalls.

So Apple offering no longer seems to be the right solution for embedded systems development. Apple is not a tool, but a toy.

Apple: “What is a CCG toolchain?”

Initially posted on 15 September 2020

The major regression brought by Xcode 12.0 beta 6 (12A8189n) is the deprecation and future removal of the legacy build system.

As a matter of facts, the legacy build system is required to process the output of an external build running on the GCC tool-chain, and provides check-as-you-type and click-to-error features. The new build system remove those features.

So I filed a ticket FB8572278 with the Feedback Assistant at the Developers Tools section.

To my surprise, I received an answer —sort of. I was asked to “provide more details about [my] use case.” and “Specifically, what is a ‘CCG toolchain’ and why is its use inherent to the legacy build system?”.

The loss of critical features due to the removal of the legacy build system, and the nonsense answer from Apple customer service to developers, are a clear invitation to assess alternatives outside the Apple eco-system.

Apple has finally acknowledged 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 ​

Time to switch back

Windows-Apple: time to switch back? Six reasons to consider

Initially posted on 20 January 2020

When I switched from Windows to Mac OS X in 2006, the reasons were very clear.

On Windows, managing anti-virus, performing updates and running security software were taking up to 20% of my time. Support for multi-media was poor, if non-existent.

Is it time to switch back? ​

​I see six reasons to consider. ​

​The premium asked for by Apple is no longer justified.

I have no problem paying a premium as long as it is justified, real and useful. Now, competition implements and even precedes Apple innovations.

I was really impressed by the versatility of the Microsoft Surface Pro and the quality of the integration with Windows. But I’m no longer willing to pay for false innovations, like the TouchBar I don’t use.

Apple no longer focuses on its products.

With grand vision for press, entertainment and games, Apple has lost focus on its core products.

And with so many lines, some products aren’t updated for years. When they are, they are not ready. I’ve never faced so many bugs with Catalina. ​ ​

Quality is an option on Apple products.

​ My last MacBook Pro 13” 2019 suffered from keyboard malfunction, top-case discolouration and batteries getting very hot.

When I asked the Apple Authorised Service Provider how to prevent those issues from appearing again, he answered “Nothing!”, as they are caused by the very design of the laptop.

Apple no longer takes care of its customers.

Apple didn’t handled properly the total ban on airlines after the recall of some MacBook 15” batteries, and left its customers unattended. ​When asked, Apple just ignored the question. ​

The four attempts to get my MacBook 13” fixed, despite the official keyboard recall and official warranty, ended costing me as much as the laptop.

If something works fine, Apple must change it.

The Photos application, a macOS version, a stable Xcode, 32-bit applications, a reliable keyboard, USB drivers… If it works, change it! ​ All this comes at the expenses of the user experience, a steep learning curve, programmed obsolescence and more spin-and-hype than real improvements. ​

Apple no longer acts as a company.

Apple takes part in conversations and promotes ideas that fall rather within a political agenda.

From a European point of view, this is difficult to understand and impossible to accept. A company sells products, employs staff, pays suppliers and rewards shareholders. It is neither an NGO nor a political party, and has no legitimacy to do so.

​Yes, it is time to consider switching back, seriously.

The software constellation

The development and the maintenance of embedXcode require a large constellation of applications and services.

Area Software Logo
IDEs Arduino and Energia
Tool-chain GCC
Ancillary tools Doxygen and Graphviz
Ancillary utilities AppleScript, Bash and Python
Targets debugging Segger J-Link and Ozone
Development of utilities Xcode
Documentation writing and publishing, previous tools iBooks Author, iTunes Connect and Books
Documentation writing and editing MacDown
Website generation MkDocs
Website template Material for MkDocs
Website simulation MAMP
Version management Kaleidoscope
Website upload Transmit
Temporary storage Dropbox
Back-office PHP
Credentials management mySQL
Real-time dashboard Node-RED
Main website Weebly
User manual website Ionos
Newsletters Mailchimp
Help desk Freshdesk
Donations Paypal
​Surveys SurveyMonkey
Services coordination Zapier
Notifications management IFTTT