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?

Apple MacBook Pro: The Keyboard Strikes Again

Initially posted on 21 February 2021

As if the previous misadventures were not enough, the keyboard of my MacBook Pro is malfunctioning again.

This time, the keys Cmd, Tab, C, V, Left are concerned with the issue.

It used to be: up works, down fails; it is now: right works, left fails.

So the recall hasn’t solved the problem. How a company can go from best to worst so fast?

Stay tuned for the new season of Apple Support - A Complete Disaster ! ​

And now a class-action

Initially posted on 24 March 2021

It seems I am not the only MacBook user to experience issues with the keyboard. A class-action has now being accepted in the US.

Same problem, same picture

Same issue, dire consequences

Initially posted on 16 April 2021

The MacBook Pro used for the maintenance of embedXcode has suffered the same issue with the keyboard for a second time. It seems there is no real solution except servicing the laptop and changing the keyboard every three months.

Mean Time Before Failure: 3 months

This makes maintenance extremely difficult, if not impossible. At the same time, embedXcode+ hasn’t been downloaded since the end of last year.

As a consequence, the long-term support for embedXcode+ might be shortened.

MTBF 4 months - TCO $2,737/year

Initially posted on 12 May 2021

Today, I finally received an answer from Apple after sending an official letter to the European headquarter.

During the last 5 years, I’ve owned two MacBook Pro computers.

  • The MacBook Pro 15” was banned from airlines and thus replaced just before flying to a conference in the US.
  • The replacing MacBook Pro 13” suffered from repeated keyboard malfunctions and was repaired 3 times, with a mean time between failure (or MTBF ) of 4 months.

In its answer, Apple merely offered me a fourth repair of the faulty MacBook Pro 13”, which is still under warrantee.

Adding up purchase prices minus trade-in offers, time wasted on backups and restores, additional costs for replacement laptops during repairs, the total cost of ownership (or TCO ) reaches USD2,737 per year.

No more an option

Apple has just lost a customer.

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

Apple Developer account closed

Initially posted on 14 December 2020

Today, I’ve deleted my Apple developer account and started preparing my migration away from macOS.

However, I am keeping the MacBook Pro to ensure the maintenance of embedXcode during the long-term support period.

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.

embedXcode development

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
Version management Kaleidoscope

Documentation generation and distribution

Previous documentation relied on the iBooks solution from Apple.

Area Software Logo
Writing and editing iBooks Author
Documentation publishing iTunes Connect and Books

It is now generated from MarkDown as a static website.

Area Software Logo
Writing and editing MacDown
Website generation MkDocs
Website template Material for MkDocs
Website simulation MAMP
Website upload Transmit

Websites hosting and ancillary services

Area Software Logo
Main website Weebly
User manual website Ionos
Temporary storage Dropbox
Back-office PHP
Credentials management mySQL
Real-time dashboard Node-RED
Newsletters Mailchimp
Help desk Freshdesk
Donations Paypal
​Surveys SurveyMonkey
Services coordination Zapier
Notifications management IFTTT

Going Linux

This section describes the switch to Linux and the new tools used.

Leaving Apple for Linux

Initially posted on 23 May 2021

In 2006, I switched from Windows to Apple. In 2021, I’m switching again, this time from Apple to Linux.

The change was prompted by the repeated hardware failures I’ve experienced with the last two MacBooks (with an MTBF of 4 months) and the disastrous Apple customer service, resulting in a very high total cost of ownership (TCO of USD2,737 per year).

The switch to Linux was surprisingly quick and easy.

I chose Debian with default Gnome, mainly due to my prior experience on the Raspberry Pi boards. Gnome offers a clean interface with few distractions.

As IDE, I picked the excellent Visual Studio Code and kept the GCC tool-chain.

Adapting embedXcode to Linux required very few changes, thanks to the technologies it relies on. As a benefit, debugging is now internal. ​

Using Linux

Among the many Linux distributions and variants, I opted for Debian for two reasons: I’ve already been using it on the Raspberry Pi and it was known for its stability. I took the default dekstop, Gnome, for its simplicity and light requirement.

On the hardware side, I picked an Intel NUC computer. Although compact and affordable, it features many ports: 4 USB-A one USB-C Thunderbolt 4, HDMI, Ethernet, jack, micro SD-card slot. Most importantly, it comes with all the required documentation to install memory, M.2 SSD and 2.5” HDD or SSD.

I am using two displays: a 24” screen (iiyama) as main display and a portable 13” screen (no brand) on the go. The keyboard and the mouse are wireless with Bluetooth (Microsoft), after testing a USB-wired solution (Raspberry Pi).

On the software side, the Gnome package provides most of the usual applications, including browser (Firefox), mail client (Evolution), productivity suite (LibreOffice). Others can be downloaded, like video conferencing (Skype, Teams), backup tools (DejaDup, Back In Time).

As IDE, I picked the excellent Visual Studio Code with the C/C++, Cortex Debug, Astyle and Doxygen extensions. Porting embedXcode to the new environment was very easy with virtually no changes. Only the paths needed to be adapted to the new environment.

Other tools include signal analyser (Saleae Logic), debugging (Segger J-Link utilities and Ozone), file comparison (Meld), Doxygen (Doxywizard), GitHub client, serial console (PuTTY, CoolTerm), hexadecimal editor (GHex).