This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Am437x gp evm starterware

Is there any way we can get the dual camera demo as an example project in windows ccsv6? The Linux sdk is very foreign to us and we have wasted a few weeks now following step by step through tutorials and haven't even been able to edit/load any example applications. We are very familiar with starterware and currently use the am335x. We have purchased the AM437x evm largely for the dual camera interface and would greatly appreciate any help getting started with development on a windows machine.

  • Hi Ben,

    I have asked the factory team to provide information on this.

  • Ben,

    Thanks for you question. Starterware will be part of the IDK we will be releasing by 4Q14.

    Stay tuned, in case there is any change in direction, I will up date this post.

    regards

  • What kind of problems have you had with the dual camera demo?  I can give you instructions for building it and testing out modifications if that's where some of your facing some issues.

    Also, if you have to use a Windows machine, you'll need to use a linux VM in order to utilize the SDK.

  • I can boot the AM437x EVM dev kit from the packaged SD card but that's about the extent of my evaluation.  I can go through all the apps on the pre-installed boot folder on the SD card.  What I cannot figure out and what I would like to be able to do is manipulate the code in CCSv6 for developing custom software suitable to my project.  I want to import the project in CCSv6 and make my own application specific program that integrates the peripherals such as the camera, LCD, touchscreen, and accelerometer.  I don't want to use an operating system on the AM437x EVM as it exhibits much longer unnecessary delays for the intention of my project.  I prefer to make my program application specific.

  • I see.  In that case, unfortunately you won't be able adapt the dual camera demo code for your application--it is entirely dependent on v4l2 and fbdev APIs to interact with the DSS and VPFE, which are linux specific and wouldn't translate to use in a non-linux environment

  • Thanks for the feedback.  As an effort to evaluate the AM437x EVM, I've installed VMware and Ubuntu for a virtual Linux host.  Can you point in the right direction to start manipulating some of the source files?  Starting off with something simple would be very helpful.  I can navigate the files for the most part.  What I am looking for is how to edit the existing files to actually see a change when booted with modified code.  Any info would be greatly appreciated. 

  • I'll give you complete instructions later, but for now try following these guides:

    1. Install 12.04 virtual machine.

    2. Run through the first 4 sections of the Qt Lab.

    Once you have those 2 finished, you pretty much have all the knowledge you need to at least rebuild the dual camera demo.

  • I see a download package of QT for windows.  Is it possible to run the QT labs on a windows platform instead of going through the virtual Linux host?

  • I'm not sure if it would be possible.  While Qt library can easily be used and compiled in applications in windows. the dual camera demo uses many linux specific libraries and APIs--getting them to compile in windows would be a nightmare (or maybe not possible).

    Here are the steps to quickly build dual cam demo.  Note that you don't have to have Qt Creator installed to do this (just the SDK).  Qt Creater is handy if you want to edit the GUI, though.

    1. Download and install SDK 7.01.  Use these commands:

    chmod +x ti-sdk-am437x-evm-07.01.00.00-Linux-x86-Install.bin
    
    ./ti-sdk-am437x-evm-07.01.00.00-Linux-x86-Install.bin

    2. Set up the cross compilation environment in your SDK

     source ti-sdk-am437x-evm-07.01.00.00/linux-devkit/environment-setup

         note that after you do this, you'll see green text [linux-devkit] on your command line.  Make sure you use this          terminal for the remaining steps.

    3. Go into the dual cam source directory and build it

    cd ti-sdk-am437x-evm-07.01.00.00/example-applications/dual-camera-demo-1.0/
    
    qmake dual_camera.pro
    
    make

    4.  Copy the compiled binary to your AM437x EVM.  You can use scp to do this.

         get the ip address of your AM437x board (run "ifconfig" on your EVM"

    scp dual_camera root@AM437X.IP.ADDRSS:/home/root

         there is no password for the AM437x board by default, so just press enter when prompted

    5. run the program  on your aegis evm by running the following commands:

    /etc/init.d/matrix-gui-2.0 stop
    
    export TSLIB_TSDEVICE=/dev/input/touchscreen0
    export QWS_MOUSE_PROTO=Tslib:/dev/input/touchscreen0
    
    ./dual_camera -qws
    

  • Thanks for the suggestions.  We were able to successfully complete steps 1-4 in your last post but unable to successfully complete step 5.  Kept receiving "bash: /etc/init.d/matrix-gui-2.0: No such file or directory".

    On a good note, we were able to import the dual camera demo into QT creator.  When deploying this to the EVM, the camera demo is run behind the matrix application.  How can we disable the matrix application on the EVM?  Long term goal is to be able to turn on the EVM and boot directly to our modified dual camera demo without waiting on Linux to boot.

    Our end goal is to access and manipulate the raw camera data.  Can you provide any assistance in doing so? 

  • Here are some instructions on how to disable matrix at boot time: http://processors.wiki.ti.com/index.php/Matrix_Users_Guide#Matrix_Startup_Debug

    I'm not sure why it would say that matrix-gui-2.0 doesn't exist.  Did you trying cd'ing into that directory and checking if it was there?

    In the dual camera source code, all of the manipulation of raw camera data occurs in loopback.cpp.  There is a function called "display_frame" where the raw YUV data is taken from the camera capture buffers and placed into the framebuffer for display; you could copy the camera frames to any buffer, though, if you wanted to do processing on them.  Note that "display frame" uses double buffering to eliminate tearing, so there are 2 different copies that can occur depending on which buffer is being used.

  • Yes, I did try cd'ing into the /etc/init.d/ directory and I did find 'matrix-gui-2.0'.  I typed in the command "./ti-sdk-am437x-evm-07.01.00.00/targetNFS/etc/init.d/matrix-gui-2.0 stop" but nothing happened on the target device.  This time I did not get any errors, but like I said matrix did not shutdown on the device and it continued to work properly.  Should I expect something different?  Remember, I am using VMware and Ubuntu as a virtual host to the AM437X EVM.  What I am seeing is by using a terminal window on my virtual Ubuntu Linux host.  Should I be using a terminal on the target device?  I keep seeing posts about using the terminal on the local target device.  I'm not sure how to open a terminal on the target device.  Can you help with this?  Note, I only found this file by using the "find -iname matrix-gui-2.0" command.  If I am supposed to see the /etc/init.d/matrix-gui-2.0 from my home directory then there is a problem because I do not have /etc/ on my root home directory.

    FYI, I have not had a chance yet to manipulate the camera data.  I will let you know when I get around to it.

    By the way, many thanks to your posts jelliott.  You have been a great help so far.  I wish I can just give you our project so you can work out what seems to be the trivial stuff.  Any interest, let me know.  

  • Linux can definitely be daunting.  You are correct about needing to be running these commands in the am437x console.  There are two ways you can do this:

    1. Connect a serial cable between your am437x evm and your pc.  The getting started guide with the am437x evm should have information on where the serial port on the board is located.  You also might need to get a serial to USB adapter if your PC doesn't have a serial port.  You can use minicom in your VM to bring up the terminal.

    2. SSH into your am437x terminal using your PC.  Your EVM needs to be connected to a network for this to work.  The command to ssh is simple:

    ssh root@IP.ADDRESS.OF.EVM

    Once you have the terminal up, run those commands and they should work.

  • Jelliot,

    We were able to run the examples in your previous posts by ssh'ing into our target device.  We ran the dual-camera demo and created the basic example apps given in the tutorial.

    Now, we would like to create an app on the main page of Matrix that contains our modified code for the dual camera app.  Currently, there are several files (*.h, *.cpp, *.pro, and *.ui) inside the dual camera project when opening through the QT Creator.  How to we get these files into the *.html and *.desktop files used for the app?

    Another approach we can take is booting up the target device directly to our modified code for the dual camera app, i.e. not booting matrix, but instead booting into our modified dual camera code.  We were able to use the GUI to disable matrix momentarily while we push the dual camera demo onto the target device, but had to control the target over the ssh terminal (OK for now while we are evaluating the EVM, but eventually we need our product to be self contained on the device).  Our end goal is to have an application specific product where the user turns on the device, uses our camera code program for approx. 1 minute, and then turns the device back off.  For the user to not get angry over the wait time at start up, we need the boot time of the target device to be as fast as possible.  Any advice would be great.    

    Do you guys have any updates with Starterware for the AM437x IDK?

    Again, thanks for your replies.  They have been very helpful so far.   

  • For the option where the app is started as soon as Linux boots:

    --There is a Sitara tutorial that covers linux init scripts.  You could have the app launch via these init scripts just as Matrix does by default on the EVM.  Here is the link.

    --Of course you would need to disable Matrix for this method, though.  Here is the link that describes how to do that.


    For the option where the app is part of Matrix, here is a guide on how to do that.

    Note that you don't really need to alter the dual cam source code to make the app start at boot or be part of matrix; the only thing that might be edited is the dual_camera.sh file, which is just a short script that controls how the app starts when someone selects it in Matrix.

    Quick boot times in linux can be tricky, but here is a another training for Sitara that covers some basics.  There is also useful material on this subject scattered through the web that is not from TI, so you can always search around and check some of that out.

  • Jelliot,

    We have added a project to matrix. We would like to modify it debug/run on the target via QT creator. Is this possible? We do not want to scp files over to the target and reboot every time we make a change. Furthermore, we need a means to debug the code.

    Or are there some lines of code we can add to our existing QT creator projects that will stop matrix prior to launching or put matrix in the background. Our current problem is when launching an application from QT Creator, it is shown in the background behind the matrix apps. Furthermore, if we follow the tutorial you posted and stop matrix, we lose communication with the target and cannot deploy applications from QT Creator

    Do you have any updates on starterware?

  • Actually, the start script for the dual camera demo can solve the problem where you see matrix in the background.  Just to let you know why matrix comes up in the background: The Display Sub System has 3 display planes (RGB graphics planes and 2 video planes that can take YUV or RGB).  Qt only knows about the Graphics plane, so in the dual camera demo we are essentially tricking Qt into making the other 2 video planes visible (where the camera is displayed) by making the Qt background transparent.  When this is done, we can see the YUV planes underneath the GUI; however, if there is another Qt window up (like Matrix GUI), it doesn't know about the camera planes and so is still visible underneath the GUI.

    As for copying via Qt creator to the target device, I've never done it before but according to the Qt tutorial it should be possible.  I always just made a script that would copy the compiled binary to the target.

    I also have never tried out the debugging capability of Qt creator, so unfortunately I can't be of much help there.

    For starterware, I am not a TI employee so I don't have any details on when it will be released for AM437x.

  • Josh,

    I am glad to see you are very active in our e2e....

    Starterware will be part of our IDK to be released in 4Q14.

  • Rogerio,

    These forums are just too thrilling to leave altogether! 

  • I know...and we appreciate all your comments and help.