i.MX Solutions Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX Solutions Knowledge Base

Labels
  • General 294

Discussions

Sort by:
These videos demonstrate an example application of a fully cloud-enabled and location-aware mass transport demo built on Freescale's i.MX5x platform with a HD passenger information display, PCAP touch enabled driver control display, and mobilde device (Android phone) integration. The demo showcases how Android provides the potential of significantly shortening the development cycle and accelerating your time-to-market. The demo is based on the Digi ConnectCore i.MX53 System-on-Module solution and was built using our Embedded Application Development Kit for Android (Gingerbread). Smart Tech for Passenger Buses by Digi International - Design West (ESC) 2012 - YouTube - The ARM video interview at Design West Android Bus Demo - YouTube  - The official Digi video overview Visit www.digiembedded.com for additional information, including a special i.MX53 Android Development Kit kit offer for $199. --- VDC Research Awards Digi Best of Show at Embedded World 2012 for Android Application Development Kit with iDigi Device
View full article
iWave released the official Yocto BSP for its i.MX6 Pico-ITX SBC board (iW-RainboW-G15S). The release is based on Linux 3.10.17 kernel and supports the following features: i.MX6 ARM Cortex A9 Quad, Dual, Dual Lite & Solo CPU 1GB DDR3 RAM (Quad, Dual, Dual Lite CPU version)/ 512MB DDR3 (Solo CPU version) Freescale PMIC SPI NOR Flash (default boot) eMMC Flash (default OS storage) Data UART uSD slot Standard SD slot USB 2.0 Host USB 2.0 device 10/100/1000 Ethernet Mini PCIex1 Port CAN Port LVDS display port 4 Wire Resistive touch PWM for backlight HDMI Port with Audio Hardware Codecs (Encode/Decode) 2D/3D Graphics CMOS CSI camera port MIPI CSI camera port AC97 Audio In/Out Console UART I2C Port DIP Switch, Status LEDs (GPIOs) This release supports single BSP, Binary image & MFG tool for all the four i.MX6 CPU version (Quad/Dual/Dual Lite/Solo) based SBC boards. Besides this Linux BSP support, Android Jelly Bean and WEC7 board support packages also supported for the i.MX6 Pico SBC boards by iWave systems. More details about the i.MX6 Pico SBC board hardware & software features can be found in the following i.MX6 Pico SBC product page:http://www.iwavesystems.com/product/single-board-computer/i-mx6-pico-itx-sbc/i-mx6-pico-itx-sbc.html
View full article
usbdemon Added by Terry Shultz on August 3, 2010 at 4:04pm    
View full article
Consult the Quick Start Board for SCM-i.MX 6DQ  PCB diagram , THANK YOU !!!
View full article
iWave's PICO-ITX board embedded with i.MX6 Quad core processor loaded with Yocto-Dora 1.5.3 now is capable of capturin g and streaming full HD (1080p) video from an on-board camera. Not only it can stream 1080p full HD video to a destined host machine, it is also capable of streaming two 1080p (2 streams) simultaneously at 24fps. In some of the use case scenario, user may want to stream two streams of different resolutions like 1080p and 720p simultaneously. Where high resolution on faster network and low resolution on low bandwidth network, in such use case scenario it is possible to stream multiple streams at various resolutions. The differentiating feature in this system is, it can encode and stream multiple streams simultaneously at maximum 1080p resolution or lesser.  The maximum streaming achieved on all i.MX system earlier was VGA. The possible application of this system could be surveillance and streaming server at full HD resolution. Dual Video Streaming using i.MX6 Dual Pico-ITX Single Board Computer Imagine a system which has two independent displays and can run different content from the embedded computer at the same time. iWave has developed this system with i.MX 6 processor based PICO-ITX platform running Yocto-Dora(1.5) is now equipped with such feature. The system can decode and play two different HD (1080p@24fps) videos at the time using two LVDS displays. For further information or enquiries please write to mktg@iwavesystems.com
View full article
img-0003-fsl-ptx Added by Robert Schwebel on November 10, 2010 at 6:46pm Pengutronix shows Linux on i.MX28    
View full article
http://www.youtube.com/watch?feature=player_embedded&v=P1lycaQF6Nk   Uploaded by igalloway on Jul 21, 2011 Future Display Solutions Future Electronics Display Solutions Group is excited to re-launch the Future's Panel Interface Board (PIM). This is an enabler to help our customer designing Freescale I.MX and LCDs. With the Future's Panel Interface Module, customer can use Freescale i.MX evaluation kits to drive different displays of their choice for evaluation and prototyping.       We can provide full solutions for the customers including:   - Panel Interface Module (Free for qualified customers) - I.MX Evaluation Kits (EVK) - LCD Displays - Backlight Drivers - Cables Category: Science & Technology License: Standard YouTube License  
View full article
Currently in industries from medical diagnostics and transportation to precision agriculture and entertainment, engineers are increasingly challenged to find new ways to design in greater intelligence, connectivity, and performance—while cutting costs, power consumption and size. Single Board Computers (SBC) are an ideal platform for quick and focused product design. They continue to evolve in sophistication, and the range of possibilities continues to expand as well. And as those capabilities grow, so do the choices for design engineers. But what are the factors that matter most in SBC evaluation and selection? http://www.digi.com/pdf/Design_vs_Build_web.pdf
View full article
This document will explain Cairo setup to draw something on screen with hardware accelerates using OpenGL ES 2.0 or OpenVG.   Introduction:   As you know you can use those libraries that I mentioned (OpenGL ES and OpenVG) to draw on frame buffer with hardware accelerate on imx6q but using those libraries are a little bit hard to deal what I mean is that using OpenGL or OpenVG  is a kind of tough job but why? Let me bring an example here to clarify it, Imagine you want to draw an attitude aircraft symbol, this symbol needs some of elements to be drawn to look like a complete attitude symbol it includes: 1-Circle 2-line 3-Text 4-Triangle 5-some custom shapes for instance two L like lines that draw horizontally   If you have an experience with OpenGL specially OpenGL ES you’ll realize that drawing circle, line, triangle and so forth doesn’t a really tough job, of course drawing these primitive in OpenGL needs more lines of code in contrast with Cairo API that you can draw them with just three lines of code but the most hard job is drawing TEXT in OpenGL when you want to draw a simple text you have to deal with extra libraries like freetype,… to fetch the glyph features and then you can using atlas approach to draw text in a bitmap texture then when you need a character in your app  you can access to the character’s position in previous stored glyph in the texture, fetch and use, also you need to work with two specific OpenGL ES shaders in this case.   So I think it’s ok to use OpenGL or OpenVG to draw shapes if you are really skilled with those or if you looking for trouble! 😄 personally I prefer to use a high level API and then focus on other aspect of my application.   Compiling Cairo:   This document doesn’t intend to configure or compile Cairo, I’m sure that you can easily configure and compile it with OpenGL ES backend with YOCTO, Buildroot or any other embedded Linux distribution builders (YOCTO and Buildroot aren’t an embedded Linux distributions they can make custom one for you) even you can compile it manually.   To configure: ./configure --prefix=/home/super/Desktop/ROOTFS/MY_ROOTFS/usr --host=${CROSS_COMPILE} CFLAGS="-I/home/super/Desktop/ROOTFS/MY_ROOTFS/usr/include/ -DLINUX -DEGL_API_FB" LIBS="-L/home/super/Desktop/ROOTFS/MY_ROOTFS/usr/lib/ -lz" --enable-xlib=no --enable-egl --enable-glesv2   To compile: make     By the way you can find your suitable configuration for your own board; Cairo has a lot of options.     How to make surface for Cairo:   If you have an experience drawing shapes with Cairo you know that you need a surface from cairo_t* type to drawing function API can work on and shapes appear on the screen. To create a Cairo surface that uses OpenGL ES you have to configure EGL (EGL is an interface between Khronos rendering APIs (such as OpenGL, OpenGL ES or OpenVG) and the underlying native platform windowing system)[1] correctly and then make a Cairo surface from it.                    EGLint config_attributes[] =                 {                                                EGL_RENDERABLE_TYPE,                                                EGL_OPENGL_ES2_BIT,                                                EGL_RED_SIZE, 8,                                                EGL_GREEN_SIZE, 8,                                                EGL_BLUE_SIZE, 8,                                                EGL_ALPHA_SIZE,EGL_DONT_CARE,                                                EGL_SURFACE_TYPE,EGL_WINDOW_BIT,                                                EGL_DEPTH_SIZE, 16,                                                EGL_SAMPLES,      4,                                                EGL_NONE                 };   When you want to change OpenGL ES v 2.0 with OpenVG it’s enough that change the parameter of EGL_RENDERABLE_TYPE (that is EGL_OPENGL_ES2_BIT) to EGL_OPENVG_BIT.   The below code will appear Figure 1 on screen:     Figure 1:Simple drawing by Cairo on IMX6Q     //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   //======================================================================== // Name        : testCairo.cpp // Author      : Ali Sarlak // Version     : 1.0 // Copyright   : GPL // Description : EGL+Cairo GLIB //========================================================================   #include <iostream> #include <stdio.h> #include <EGL/egl.h> #include <EGL/eglext.h> #include <EGL/eglplatform.h> #include <cairo/cairo-gl.h> #include <EGL/eglvivante.h> #include <stdlib.h>     #define DISPLAY_WIDTH 640 #define DISPLAY_HEIGHT 480 using namespace std;   int main() {     printf("START\n");     printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");     EGLContext eglContext;     EGLSurface eglSurface;     EGLBoolean resultB;       /* Get a display handle and initalize EGL */     EGLint major, minor;     EGLDisplay eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);       resultB = eglInitialize(eglDisplay, &major, &minor);       EGLint config_attributes[] =     {             EGL_RENDERABLE_TYPE,             EGL_OPENGL_ES2_BIT,             EGL_RED_SIZE, 8,             EGL_GREEN_SIZE, 8,             EGL_BLUE_SIZE, 8,             EGL_ALPHA_SIZE,EGL_DONT_CARE,             EGL_SURFACE_TYPE,EGL_WINDOW_BIT,             EGL_DEPTH_SIZE, 16,             EGL_SAMPLES,      4,             EGL_NONE     };       EGLint numberConfigs = 0;     EGLConfig* matchingConfigs=NULL;       if (EGL_FALSE             == eglChooseConfig(eglDisplay, config_attributes, NULL, 0, &numberConfigs))     {         printf("eglChooseConfig EROR\n");     }     if (numberConfigs == 0)     {         printf("eglChooseConfig EROR\n");     }       printf("number of configs = %d\n", numberConfigs);     /* Allocate some space to store list of matching configs... */     matchingConfigs = (EGLConfig*) malloc(numberConfigs * sizeof(EGLConfig));       if (EGL_FALSE  == eglChooseConfig(eglDisplay, config_attributes, matchingConfigs, numberConfigs, &numberConfigs))     {         printf("eglChooseConfig EROR\n");         if(matchingConfigs!=NULL)         {             free(matchingConfigs);             matchingConfigs=NULL;         }         return -1;     }       printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");       EGLint display_attributes[] =     {             EGL_WIDTH, DISPLAY_WIDTH,             EGL_HEIGHT, DISPLAY_HEIGHT,             EGL_NONE };       /*Window attributes*/     EGLint window_attribList[] =     {             EGL_NONE     };       EGLNativeDisplayType eglNativeDisplayType = fbGetDisplay(0);       EGLNativeWindowType eglNativeWindow = fbCreateWindow(eglNativeDisplayType,             0,             0,             DISPLAY_WIDTH,             DISPLAY_HEIGHT);       eglSurface = eglCreateWindowSurface(eglDisplay,matchingConfigs[0],eglNativeWindow,window_attribList);       if (eglSurface == EGL_NO_SURFACE)     {         printf("eglSurface = %x\n", eglGetError());     }       const EGLint attribListCtx[] =     {             // EGL_KHR_create_context is required             EGL_CONTEXT_CLIENT_VERSION, 2,             EGL_NONE     };       eglContext = eglCreateContext(eglDisplay, matchingConfigs[0], EGL_NO_CONTEXT,  attribListCtx);      //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     if (eglContext == EGL_NO_CONTEXT)     {         printf("eglContext = %x\n", eglGetError());         return -1;     }       cairo_device_t* cdt = cairo_egl_device_create(eglDisplay, eglContext);       eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);       cairo_surface_t *surface = cairo_gl_surface_create_for_egl(cdt, eglSurface,             DISPLAY_WIDTH,DISPLAY_HEIGHT);         cairo_t *cr = nullptr;     cr = cairo_create(surface);     if(!cr)     {         printf("Wrong cairo_t!\n");         return -1;     }     //*********************************************************************************************     for (int index = 0; index < 1; ++index) {         cairo_set_source_rgb (cr, 0, 0, 0);           cairo_move_to (cr, 0, 0);         cairo_line_to (cr, 200, 200);         cairo_move_to (cr, 200, 0);         cairo_line_to (cr, 0, 200);         cairo_set_line_width (cr, 1);         cairo_stroke (cr);           cairo_rectangle (cr, 0, 0, 100,100);         cairo_set_source_rgba (cr, 1, 0, 0, 0.8);         cairo_fill (cr);          cairo_rectangle (cr, 0, 100, 100, 100);         cairo_set_source_rgba (cr, 0, 1, 0, 0.60);         cairo_fill (cr);          cairo_rectangle (cr, 100, 0, 100, 100);         cairo_set_source_rgba (cr, 0, 0, 1, 0.40);         cairo_fill (cr);          cairo_rectangle (cr, 100, 100, 100, 100);         cairo_set_source_rgba (cr, 1, 1, 0, 0.20);         cairo_fill (cr);          cairo_surface_flush(surface);         eglSwapBuffers(eglDisplay,eglSurface);     }       //to check that cairo can make the photo from the surface, png file created     cairo_status_t s = cairo_surface_write_to_png(surface, "surface.png");     //it is a photo that made by cairo [OK]     cairo_destroy(cr);      if (CAIRO_STATUS_SUCCESS == s)     {         printf("Status = OK \n");     }     else     {         printf("Status = ERROR <ERROR_CODE->%d>\n", s);     }      if(matchingConfigs!=NULL)     {         free(matchingConfigs);         matchingConfigs=NULL;     }       cairo_surface_destroy(surface);     printf("END!\n");     return 0; }     How To Be Sure That My Application Using GPU:   If you have a look at https://community.nxp.com/thread/324670 you can profile a graphical application and investigate if it uses GPU or not, also you can measure the performance and analyze the application by vAnalyzer.       According to the link I’ve mentioned that’s enough to set galcore.gpuProfiler=1 in uboot and then check the /sys/module/galcore/parameters/gpuProfiler   file (read the file by cat, vi, nano, etc.) if the output is 1 all things is done in a right way the final step is that exporting some environment variables :   export VIV_PROFILE=1 export VP_OUTPUT=sample.vpd export VP_FRAME_NUM=1000 export VP_SYNC_MODE=1   VIV_PROFILE[0,1,2,3], VP_OUTPUT[any string], VP_FRAME_NUM[1,N], VP_SYNC_MODE[0,1]   Note: VIV_PROFILE[0] Disable vProfiler (default), VIV_PROFILE [1] Enable vProfiler, VIV_PROFILE [2] Control via application call, VIV_PROFILE [3]Allows control over which frames to profile with vProfiler by VP_FRAME_START and VP_FRAME_END.     If application uses GPU smaple.vpd file will create if not there isn't any vpd file. [1] - https://www.khronos.org/egl
View full article
以下代码摘抄自:uboot 2009源码中board/Freescale/mx6q_sabreauto/flash_header.S #include <config.h> #include <asm/arch/mx6.h> #ifdef CONFIG_FLASH_HEADER #ifndef CONFIG_FLASH_HEADER_OFFSET # error "Must define the offset of flash header" #endif #define CPU_2_BE_32(l) \ ((((l) & 0x000000FF) << 24) | \ (((l) & 0x0000FF00) << 😎 | \ (((l) & 0x00FF0000) >> 😎 | \ (((l) & 0xFF000000) >> 24)) #define MXC_DCD_ITEM(i, addr, val) \ dcd_node_##i: \ .word CPU_2_BE_32(addr) ; \ .word CPU_2_BE_32(val) ; \ .section ".text.flasheader", "x" b _start .org CONFIG_FLASH_HEADER_OFFSET ivt_header: .word 0x402000D1 /* Tag=0xD1, Len=0x0020, Ver=0x40 */ app_code_jump_v: .word _start reserv1: .word 0x0 dcd_ptr: .word dcd_hdr boot_data_ptr: .word boot_data self_ptr: .word ivt_header app_code_csf: .word 0x0 reserv2: .word 0x0 boot_data: .word TEXT_BASE image_len: .word _end_of_copy - TEXT_BASE + CONFIG_FLASH_HEADER_OFFSET plugin: .word 0x0 dcd_hdr: .word 0x40D802D2 /* Tag=0xD2, Len=90*8 + 4 + 4, Ver=0x40 */ write_dcd_cmd: .word 0x04D402CC /* Tag=0xCC, Len=90*8 + 4, Param=0x04 */ #include <config.h> #include <asm/arch/mx6.h> #ifdef CONFIG_FLASH_HEADER #ifndef CONFIG_FLASH_HEADER_OFFSET # error "Must define the offset of flash header" #endif #define CPU_2_BE_32(l) \ ((((l) & 0x000000FF) << 24) | \ (((l) & 0x0000FF00) << 😎 | \ (((l) & 0x00FF0000) >> 😎 | \ (((l) & 0xFF000000) >> 24)) #define MXC_DCD_ITEM(i, addr, val) \ dcd_node_##i: \ .word CPU_2_BE_32(addr) ; \ .word CPU_2_BE_32(val) ; \ .section ".text.flasheader", "x" b _start .org CONFIG_FLASH_HEADER_OFFSET ivt_header: .word 0x402000D1 /* Tag=0xD1, Len=0x0020, Ver=0x40 */ app_code_jump_v: .word _start reserv1: .word 0x0 dcd_ptr: .word dcd_hdr boot_data_ptr: .word boot_data self_ptr: .word ivt_header app_code_csf: .word 0x0 reserv2: .word 0x0 boot_data: .word TEXT_BASE image_len: .word _end_of_copy - TEXT_BASE + CONFIG_FLASH_HEADER_OFFSET plugin: .word 0x0 dcd_hdr: .word 0x40D802D2 /* Tag=0xD2, Len=90*8 + 4 + 4, Ver=0x40 */ write_dcd_cmd: .word 0x04D402CC /* Tag=0xCC, Len=90*8 + 4, Param=0x04 */ 我的疑问是上面代码标红的部分的意义是什么?确切的说,IMX6Q既然规定了IVT在不同的boot devices中的偏移地址,比如我的应用场景是emmc,偏移地址是0x400(1K),那么我的uboot镜像完全可以按照:IVT+uboot本体的格式来构建,这样一来当使用mfg工具烧写uboot镜像时就可以用以下的命令来执行: <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 ">write U-Boot to sd card</CMD> 而不是默认的命令(跳过uboot.bin前0x400的字节): <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2">write U-Boot to sd card</CMD> 这样看,那么flash_header.S前面的0x400字节是不是多余的呢,还是有什么特别的用处,如果直接把这种uboot.bin烧写到emmc的0x400处(不跳过uboot.bin前0x400的字节,即b _start, .org CONFIG_FLASH_HEADER_OFFSET),那是不是就直接会调整到_start函数开始执行,而不会进行DCD相关的配置?
View full article
use AdvancedToolKit1.71 earse NANDFLASH,display error ,why ?      FLASH     K9F2G08U0C-SIB0
View full article
​ Horw, Switzerland: Toradex announced it has joined Microsoft Azure Certified for Internet of Things (IoT), ensuring customers develop and deploy IoT solutions quickly with hardware and software that has been pre-tested and verified to work with Microsoft Azure IoT services. Microsoft Azure Certified for IoT allows businesses to reach customers where they are, working with an ecosystem of devices and platforms, enabling faster time to production. Toradex offers robust and compact embedded computing solutions encompassing System on Modules (SOMs) and Customized Single Board Computers (SBC), which are used in variety of industries such as Industrial Automation, Medical, Automotive, Robotics and many more. Toradex modules are ideal for quickly creating proof-of-concepts as well as scaling seamlessly from prototypes to tens of thousands of devices without the need to redesign the embedded computer. This reduces risk and time to market. A list of certified Toradex Apalis and Colibri SOMs can be found here. Toradex will be offering a webinar on “Getting Started with Azure IoT on Devices”. Free registration can be done here. “Microsoft Azure Certified for IoT validates our ability to jumpstart customers’ IoT projects with pre-tested hardware and operating system combinations,” said Stephan Dubach, CEO, Toradex. “Decreasing the usual customization and work required for compatibility ensures Toradex helps customers get started quickly on their IoT solution.” “Microsoft Azure Certified for IoT extends our promise to bring IoT to business scale, starting with interoperable solutions from leading technology companies around the world,” said Barb Edson, general manager for Data Platform and Internet of Things, Microsoft. “With trusted offerings and verified partners, Microsoft Azure Certified for IoT accelerates the deployment of IoT even further.” IoT projects are complex and take a long time to implement. Customers find that choosing and connecting the right set of devices, assets or sensors to the cloud can be time-consuming. To jumpstart their IoT projects with confidence, customers are looking for certified devices and platforms that are tested for readiness, compatibility and usability with the Microsoft Azure IoT Suite. By choosing a partner from the Microsoft Azure Certified for IoT program, customers can save time and effort on project specs and RFP processes by knowing in advance what devices and offerings will work with the Azure IoT Suite. To learn more about Azure IoT Suite, click here. About Toradex Toradex is a Swiss based company with offices around the world, offering ARM based System on Modules (SOMs) and Customized SBCs. Powered by NXP®/Freescale i.MX 6, i.MX 7 & Vybrid, and NVIDIA ® Tegra processors, the pin compatible SOMs offer scalability in terms of price, performance, power consumption, and I/Os. Complemented with direct online sales and long-term product availability, Toradex offers direct premium support and ex-stock availability with local warehouses.
View full article
DSC_0059 Added by iWavesystems on April 3, 2012 at 8:41am    
View full article
i.MX6 Q7 Development Kit       The Development Platform incorporates Q7 compatible i.MX6 SOM which is based on Freescale’s i.MX 6 Series 1.2GHz multimedia focused processor and Generic Q7 compatible Development Board. This platform can be used for quick prototyping of any high end applications in verticals like Automotive, Industrial  & Medical. Being a nano ITX form factor with 120mmx120mm size, the board is highly packed with all necessary onboard connectors to validate complete i.MX6 CPU features.   Benefits Simple, low cost and yet rugged assembly thanks to the industrial temperature grade and compact (120 x 120 - Nano ITX) form factor Simple and low-cost integration thanks to the on-board standard interfaces (uSD, USB and Memory) Lowest power consumption. Typical power consumption      Highlights Ideal for quick development Shortens product development life cycle Quick customization can be done in a very shorter period Suitable for validation of any R1.20 Q7 compatible module      Features Display: 7" 800x480 TFT LCD, VGA Port/ TV Out, HDMI Port*, LVDs Display connector* Touch Panel: Resistive Touch Capacitive touch* Video Input: Camera Interface*, TV IN* Audio: External Audio Codec, Headphone/ Mic Jacks PCIe: PCIe Mini Card*, PCIex1 Port* USB: USB2.0 Device - Mini AB connector, USB2.0 Host 2 ports - Type A Connector Serial: UART - DB9 connector Storage:SATA Port1 - 7P Connector*, SATA Port2 - 22P Connector*, Standard SD Slot Communication:10/100Mbps Ethernet - RJ45 Jack, 802.11b/g/n Wi-Fi Module*, CAN Port - DB9 connector* Power: 12V DC Input, On-board RTC coin Battery Form Factor: 120 x 120 - Nano ITX Temperature supported: 0 to 60 oC      Target Applications Industrial/Medical Green Energy Controller Panel PC, High-end PDAs, Secure Devices, Industrial appliance Control, Automotive In Vehicle Infotainment Systems Medical HMI, Kiosks, POS, General Embedded     Click here for more details on the i.MX 6 Q7 Development Kit by iWave
View full article
http://www.youtube.com/watch?feature=player_embedded&v=RzmsFxb3EcQ   Uploaded by Digidotcom on Jul 30, 2010 For more information visit http://www.digi.com/products/embeddedsolutions/connectcore-wi-mx51.jsp. Category: Science & Technology License: Standard YouTube License  
View full article
Dear,   Now we could use USB port for program downloading, do we have serial port download tools for i.mx6UL? For Jlink tools, now it could start running with Jlink, but after power off and power on, the target will not start. Do you have the image which could download to QSPI norflash by Jlink, and after power on, the target board could running.
View full article
Airbus connected factory to shorten Time To Market, Remy’s Martin connected bottle to avoid counterfeit, Schlindler’s elevator smart sensors to improve security, Cisco-IBM connected port in Colombia to enable predictive maintenance, these are some successful examples of B2B IoT creating value and business, and there are many more to come. MACKINSEY ASSESS THAT 70% OF POTENTIAL VALUE ENABLED BY IOT SHOULD COME FROM B2B! McKinsey Global Institute – “The internet of Things: mapping the value beyond the hype” – June 2015 A growing number of companies understand the potential of IoT for B2B markets and its trillions dollars’ revenue expected in 2020 (from 3 to 20 depending on sources and studies). That said, you don’t develop a bluetooth key ring the same way as a sensor designed to monitor temperature in a hot caustic reactor lost in the middle of nowhere and requiring 99,9% availability. While B2C IoT main challenges will remain business application and datamining, B2B brings an additional complexity to the device and its direct environment (gateway, other IoT devices, IT, etc). That is why we make a distinction between the “sexy” IoT focused on B2C and its challenges (marketing, business model, retention, etc.) and what we call the “serious IoT” which is more related to industrial and B2B stakes. This article is the first of a series where I aim to describe the whole process of IoT project development, from a business point of view as well as a technical point of view I will start with this first article by giving what I believe is the best methodology to start a BtoB or Industrial IoT project.   What are the challenges of serious IoT? What are the key success factors to launch a product? What to begin with and which steps to follow? THE FOUR PILARS TO SUCCEED IN AN IoT PROJECT Before I dig into the process to follow, let’s share some key success factors that I’ve identified in all the IoT projects I’ve seen and run: Design thinking As IoT is “hype”, many companies want IoT to launch a project and forget that simple saying: “no pain, no gain”. If there is no pain to be addressed with the project, it will certainly end up in the archive box of the data room. Design thinking allows to have a consumer-centric approach at each stage of the development and ensures your project/product relieves pain, brings a benefit for the customer (even if customer is internal). Master a wide range of technologies MacKinsey assess that system interoperability represent 40% of the potential value of IoT revenue. The “inter” of interoperability means that companies would need partners mastering many different technologies to have all layers/devices work together. In the embedded/IoT world, this can easily exceed 50 technologies (HW architectures, OS, radio & network protocols, frameworks, applications, etc.).  So the success of an IoT project, and more widely of an embedded project, is moving from a technical “silo” expertise to a system approach coupled with technical expertise. Designing the device itself also requires a wide range of expertise and a system approach to optimize the whole system based on business application requirements. Reliable partners (either for technologies or distribution channel) This is often called ‘open innovation’, a term that can freak out CEOs or CTOs. It is simply the fact that you build your project involving partners at each stage to create more value.  As IoT impacts every single bloc of the business model (distribution channel, revenue mode, communication, key activities, key resources, etc.), not a single company can have every related asset internally. So finding the right partners, and sharing value with them, is key to manage and roll-out the project Agile approach This is another “buzz” word. But it is not so obvious for companies not coming from the software industry or coming with a pure embedded software mindset and its 'waterfall approach'. IoT sees many new comers discovering the software challenges, and trying to apply their regular development processes (V cycle for example) to the IoT project. That is the best way to burn it in endless discussions on product scope, spend a lot of money on redeveloping things, and delaying your project launch forever. WHERE AND HOW TO START YOUR IoT PROJECT? Now you’re thinking: “Hmm, interesting, thanks Mr Consultant for this completely un-operational advice. But that doesn’t help me to start”. Don’t you leave now, here is the practical part! These are the first steps to follow when you want to manage an IoT project: 1. START WITH ''WHY'' As Simon Sinek would say, you’d better start with the “why” before launching any useless project. So, why do I want to launch an IoT project? Do I want to launch something that makes my company look trendy and innovative? Do I want to save cost by optimizing my business processes (maintenance, operation, production, etc.)? Do I want to enable new business models into my company offer, thanks to the IoT opportunities (renting vs selling, data value, new services, service vs product, etc.)? Do I want incremental innovation to refresh some of my products? Do I want to use the project as a Trojan horse to digitalize my company? Over the past few years, I have seen all of these motivations among management teams, and all of them are fine. But, you cannot pursue all those goals at the same time, and you certainly won’t design the same project depending on the choice you make. As we say in French “choisir, c’est renoncer” which would translate into something like “Choosing is giving up”. So take time to clearly state your motivations and then select one that needs to guide your focus in the coming months. 2. DESIGN USE CASES AND MAKE ASSUMPTIONS  Easier said than done, but first forget about technology/product, and just think about what IoT could allow in your environment and to which customer this could be most valuable. Draw several customer “journeys” and see where innovation could be used as painkiller or gain creator. Let’s take the example of a maintenance scenario. The idea is the allow remote action for on field devices. For instance, coffee machines installed into gas stations all over Europe. In that case, ask yourself how IoT could make maintenance more efficient? Try to assess time gain, money gain, and security gain and quantify it. Let’s say you identified that among 1000 machines installed, you have a high chance of having 5 customer claims per week and therefore 5 diagnosis to be done per week. Can IoT help you run the diagnosis remotely? Can IoT help you solve the problem remotely? In that case, will that save all on site trips? How much money would that save for the company operating the machines? Knowing that, you can start building a first draft of business models making assumptions: how much of that value can you take? What is the business model you can build around that? How much will it affect your customer process? Have you got the right distribution channel to sell this new offer? Which key assets and activities would you need to bridge the gap between current status and this innovation? 3. GET OUT THE BUILDING Use cases and key assumptions in your pocket, you will now need to go and meet potential customers and partners. The more you share, the more your project will evolve to a credible scenario. Who in your existing base can be your early adopters? Who are your customer having the pain you ease at the highest level (and it is even better if they try to solve it themselves with a workaround). In our example of remote maintenance, they would have some artisanal webcam system on each site to see the machine state and detect some issues without any on-site intervention. Once you’ve identified 5 to 10 contacts, go out and meet them, and try to understand several things : the high level stakes, the problem they have on the field, the way they have tried to solve it, the change process and stakeholder, and then (and only then) you can present your innovation and collect feedbacks. A few slides are enough to present. There is no need for a prototype or any bigger investment. You will be amazed on the quantity of information you can collect that way. And remember something: don’t listen to what people say, look at (or try to understand) what they actually do. 4. BUSINESS MODEL AND FUNCTIONAL SPECIFICATIONS You had your first iteration, congratulations! You wrote down assumptions, you went on the ground to test them, and you collected valuable insights from your targeted customers. Maybe your assumptions proved fully wrong, then go back to stage 2! Otherwise, lucky you, you can write down a v1 of the business model and define your product functional specifications better. This is where you can start defining features, functionalities, prices, offers, channels, technical constraints, cost, financial figures, etc. At the end of this stage you will have some kind of a business plan, a sales pitch, functional specifications, and maybe even technical specifications for your IoT project. 5. POC, POC, POC  That is one of the hardest part of any innovative project: build a Proof Of Concept and test it. Questions are: what are the key features/attributes that I need to test to prove that my concept makes sense for customers? How can I do that as cheap as possible in order to keep my budget for the real product? You’ll need to be very smart, or pay some smart provider, to be able to degrade your end vision so much to just keep the key attributes you want to test. If we go back to the remote maintenance example, can you build some basic software on a Raspberry Pie Board connected to the machine, coupled with a basic web interface that give critical information on the machine, for instance power consumption, run time, temperature, etc. Even if the final product won’t be using raspberry, if you want the web interface to be embedded into an app, and if you want to have twice as much indicators, just focus on the key elements. And test. Doing so, you’ll allow your customer to see real progress, to feel involved in the development process, and to influence the final outcome. And on your side you will collect key information that would take months or even years to collect if you had done it on the real product. A Proof Of Concept can be a functional prototype, or a design prototype, or both. That is pretty much depending on the project and again on the key attributes/functionalities you want to test. 6. ANOTHER LOOP TO COME Congratulation, you’ve made another loop. You are about to become expert in so called “iterative development”! If you don’t feel so, don’t worry as you’ll have many other loops following the same process: make assumptions, test, measure, learn, adjust and make new assumptions, test, measure … Each loop will allow you to adjust the business model, the functional specifications, the customer engagement and go further into your product development. The complete ''Lean startup process'' The key is to keep in mind that your goal here is not to have the perfect product. It is just to be able to learn as much as possible in each loop while spending as less as possible. Make as many loops as you can until you reach a satisfying v1 product brief. But that is for chapter 2… Originally Written on WITEKIO Technical Blog by Samir Bounab, Chief Sales Officer, WITEKIO 15 September 2017
View full article
The i.MX53 General Market Launch at Embedded World Added by Marsha Chang on March 8, 2011 at 6:34pm The i.MX53 launch was successful at Embedded World in Nuremberg, Germany. We had many partners demoing i.MX53 solutions as well as the i.MX53 Quick Start board showing HD1080p video decode and the i.MX53 Tablet reference design (SABRE Platform for Tablets). For more information, visit www.freescale.com/imx53.  
View full article