Hi Everyone, time for a quick update on our OpenWrt work for the Creator Ci40 board and some insight into the work that we've been running through in the past couple of months.
Some history - the existing OpenWrt release 0.10.4 for Creator Ci40 that we made in 2016 is a combination of vanilla OpenWrt, platform packages that we put together to support the Ci40 board, and Creator packages that we've put together covering both Creator IoT framework functionality and packages that help with board setup or application development.
The 0.10.4 release doesn't fit with the mainline OpenWrt project so the architecture of 0.10.4 prevented us from pushing change requests to the mainline project. At the end of last year we started taking steps to produce both a basic platform OpenWrt image for Ci40, and a separate Creator Ci40 OpenWrt image. The platform release will be a clean OpenWrt image with platform specific changes that is a good basis for us to upstream our changes to OpenWrt, the Creator image is our vision of OpenWrt for Ci40 that we think best fits the needs of developers to get the board up and running quickly.
Current position - We've been on the verge of approving platform and Creator Ci40 images for several weeks now and consistently hit problems due to changes in packages causing knock on effects further down the line, this has been due both to changes in the mainline packages and our own platform and Creator packages. To break this cycle we've further decoupled the platform and creator build processes.
The old build process that we used for 0.10.4 would build all OpenWrt packages for Ci40 at an initial build time (all of the OpenWrt default packages, our platform changes, and our Creator packages), the build process would then go ahead and construct the OpenWrt image, the OpenWrt SDK, the image builder, etc. When we tried to apply this old build process to our current OpenWrt work we hit failures with the inter dependencies of packages.
The new revised build process only builds the base OpenWrt and our Ci40 platform packages at the initial build time and then moves on to construct the platform image, SDK, image builder, etc.
- We use the platform SDK to build our creator packages, these are then made available at downloads.creatordev.io.
- A new Creator SDK is constructed that is a combination of the newly built platform SDK and feed for the creator packages. Its this Creator SDK that will be the basis for our revised example applications and will be our suggestion for your development build environment.
- The OpenWrt image builder is combined with the Creator packages and a number of config changes (turning on softAP wifi as the default out of box configuration for one!) to produce the Creator Ci40 OpenWrt image. Again, the Creator Ci40 OpenWrt image will be the runtime environment on Ci40 for our workshop examples.
In the near future - You can expect to see both platform images and Creator images made available on the downloads server and posts in the forum to bring you details of the releases. The Creator functionality includes tools to simply the provisioning of Creator IoT boards with the Creator Device Server accounts as well updates to the LetMeCreate libraries. We've revisited workshops 1 and 2 on the docs.creatordev.io site that currently rely on manual provisioning of the Ci40 using downloaded certificate files and revised them to make use of the new provisioning scripts and webpages - all of these changes will be pushed when the Creator image is available.