i.MX8 and M4 development

It has been fun getting the i.MX8 IoT Core port up to speed. We are still working on adding more features, especially more peripheral support. We have some of the basics like GPIO and UART working but there is more to come.

One of the other nice features of the i.MX8, in addition to its multiple ARM A53 cores, is it also includes an ARM M4 co-processor core. This is great for off-loading some real-time tasks. Or you can even shut down the main cores and just run the M4, saving power. The versatile IO multiplexer can mux in different peripherals so basically any IO (like UART, SPI, I2C etc.) available on the chip is also available to the M4 core. The M4 is more a “microcontroller” than a general purpose “microprocessor” like the A53.

So what about development tools? Well there are plenty. Most players in the embedded tools market have i.MX8 – M4 support coming on line.

Some of the popular players are:

  •  IAR  Embedded Workbench
  •  SEGGER Embedded Studio
  •  NXP MCUXpresso
  •   GCC GNU

I was able to setup and compile/debug with each of these. Some of the IDE based tools have nice feature but they come at a rather high price tag. All support debugging via a jtag connection.

Another, much less expensive, option is to use the free GNU ARM compiler toolchain and CMAKE. I was able to set up Visual Studio Code as my IDE and using its rich plugin support add compile and debug options. A Visual Studio Code plugin for GDB is available and mated with my Segger jtag probe, I was able to set breakpoints and single step through the source code of my project. I figure this saves me close to $2k over some of the higher end tools.

The M4 has a lot of software support as different flavors of ARM M0’s and M4’s have been around for years on standalone processor chips. The M4 also supports Freertos OS. More on this in a subsequent post.

i.MX8 booting IoT Core!

Happy to report I have IoT Core booting on my i.MX8 dev kit.

Ran into some issues with the secure boot but I have been working with the Microsoft development team to work through these.

Great to see 64bit ARM OS working.

Attached see the video.https://www.dropbox.com/s/o3i55y8kiut9962/New%20video2_Small.mp4?dl=0

Android Things going underground

According to this post it looks like Android Things never got the reception Google may have wished for.

They seem to be dropping public support for the platform and just concentrating on OEMs (which smells like marketing spin to me). Strange since they were touting 3 year commitment just a few months ago. I guess they may still do the security updates but we will never see the rich public platforms they were once promising.

Having been burned by Intel (they unexpectedly dropped support for many of their development platforms), Atmel and Microsoft many times in the past it comes as no surprise to me. Many times corporate expectations don’t exactly align with customers or the public. Especially when it comes to the bottom line ($$).

Its hard for a platform to acquire the critical mass to keep it around going forward. Many times I have been asked “How long do you think Intel will continue making 80186 chips”. My answer “As long as they continue to make money on it!”  says it all.

ARM64 support comming to IoT Core

Windows IoT core was originally released with support for x86 and ARM. These are 32bit OS flavors for ARM and Intel based processors. Later came x64 for the Intel line.

Now, with the release of Windows 10 1809 we are seeing an associated ARM64 IoT release.

A September 2018 IoT Core refresh now includes the ARM64 bits along with the x86, x64 and ARM. This rounds of the offering and we can expect to see more ARM64 offerings.

We should expect to see the Raspberry Pi 3 and the i.MX8 platform now support 64 bit ARM as these are based on the 64bit A53 ARM core.

I have been doing some preliminary builds of ARM64 IoT Core on the i.MX8 platform using the new NXP evaluation kit.

Looks very promising …. stay tuned!

Azure Sphere security and IO

I was doing some more experimentation with my new Azure Sphere development kit.

I found the security services quite impressive. The hardware based Pluton security is definitely the way to go.

While somewhat difficult to setup, I believe its only going to get easier going forward. With all the security breaches in the news lately you can see why this trusted platform development is going to in our future (as an embedded developer).

The dev kit does have wi-fi capability but very limited IO (GPIO and UART). I filled out the customer feedback survey and suggested that future releases need to at least support all the “standard” IO busses, like GPIO, I2C and SPI. Hopefully this will also improve in the future too.

My last comment had to do with development tools, while C++ support is sufficient for the time being I would like to see .NET core support with C#.

 

Support for i.MX8 being added to Windows IoT Core

The latest addition to the Windows IoT Core lineup is the NEW i.MX8 processor.

Really excited about this one. First out of the gate is support for the i.MX8M dev kit from NXP.

Check out the public preview.

i.MX6/7 Windows IoT Core goes public preview

After several months of work on Microsoft’s private project Kayla (the Windows IoT Core port to the i.MX6/7 processor family) we finally have reached the public preview milestone!

Give it a look at : https://github.com/ms-iot/imx-iotcore

Lots of cool security features, which in my opinion, makes it a great platform for commercial products. Unlike platforms like the Raspberry Pi, which are good prototyping and hobby platforms but lack any real security features, the i.MX core is designed from the bottom up with security in mind.

We support several i.MX6 and i.MX7 development boards with the new i.MX8 coming soon.

 

Presentation on Streaming Analytics

So today I did a lunch and learn session on Azure Streaming Analytics for my colleagues at work.

Went pretty good and there was a lot of interest. I used the Azure solution accelerator for the Remote Monitoring Solution. It creates several simulated IoT devices and shows off some of the remote monitoring capabilities of an example IoT infrastructure. I then modified our medical device to stream sensor data up to Azure. I did a Stream Analytics component to sync the data to Power BI service. Great presentation.

Windows IoT Core booting on SabreLite!!

Finally able to completely boot up Windows IoT Core on my iMX6 SabreLite Platform!

It took quite a bit of work but finally had success! I believe I may be the first one to have Windows IoT Core running on this platform.

I will be doing a pull request to the Project Kayla repo to share my work with the community…stay tuned!

See the Video!

Booting Windows IoT Core on i.MX6SabreLite

Made some good progress on secure booting on the SabreLite platform.

While the SabreLite platform from Boundry Device is getting rather long in the tooth. It is one of the (presently) unsupported platform for Windows IoT Core. I have put in a great deal of time and I now have, at least, a secure u-boot implementation working. I plan on doing a pull request to the private Microsoft repo soon. Just a few more pieces to check out. I anticipate the next steps to be not as difficult as there are some good templates to follow. Stay tuned…