New features for NEO as a target system for embedded development - robotics

Discussion in 'UDOO NEO' started by JackSilb, Nov 3, 2015.

  1. JackSilb

    JackSilb Active Member

    Joined:
    Nov 3, 2015
    Messages:
    100
    Likes Received:
    32
    Hello,

    Yesterday I received my cool NEO. It was up an running for remote wireless Access in about 10 min after the 2 hours to download the UDOO Linux Image.

    First, thank you for making this project happen. I am happy to be part of the Kickstarter.

    I understand you have a large customer base to serve. My notes will be related to a portion of your potential customers.

    Background:
    I am primarily looking to use the NEO for robotics applications where the low level control is done on the M4 and Linux is used for the high level tasks.

    I would like to start a Thread for new ideas and hopefully see some of these get into your road map:
    • A fast prototyping Web based GUI like Cloud9. It is very popular on the BeagleBone platform. It is has a clean interface and have the feel of a professional development environment. That should be very good for the Makers market.
    • A Cross-compiler environment where all the "heavy compilation" is done in a PC and the code uploaded to the NEO (for both Linux and Arduino). Maybe using the popular multi-OS Eclipse.
    • Debugging capability like VisualMicro (Eclipse has the capabilities for using a debugger). VisualMicro works relatively well for Arduino but needs to be in MS Windows.
    • Partnership with NuttX & ROS (Robot Operating System) to port their RTOS and ROS to NEO. They currently have a port to the M4. It should not be much work to get it into NEO's M4. That will allow NEO to have RTOS and a layer to enable robotics development using a growing popular robotics software platform.
    Yes, I know we can have tools that will run on the Linux portion of the NEO. After all it is a Linux machine. The point here is to keep NEO lean for people that primarily wants it as a target machine to execute the code compiled on a PC*. Most, if not all, the embedded developers don't even need the GUI (e.g., X) to start by default on NEO.

    *My first impression of the NEO is that it is slow for compilation on it. Even the simple Blink example for the Arduino takes "a relativity long time". If you are used to compile code in personal computer the NEO definitively feels slow and you want to move on to find another solution. I am using a Class 10 SD Card that claims to have 80 Mbps speed. I don't think it is slowing down the compilation. Yes, I know that eventually you will support us to program the M4 using the USB cable. I am talking about a possible integrated environment for both Linux and Arduino (M4 code).

    The idea behind these is to enable the use of NEO as a strong option as an embedded system (target) while code that is developed in a PC (Linux, MacOS, Windows).

    Again, good job.

    Thank you,
    -Jack
     
    derdems likes this.
  2. Andrea Rovai

    Andrea Rovai Well-Known Member

    Joined:
    Oct 27, 2014
    Messages:
    1,703
    Likes Received:
    240
    Dear Jack,
    thanks for writing these proposals.
    You really nailed it! Let me address these proposals point by point.
    1) it was on the roadmap. Currently we're testing cloud9. We'll let all of you know our feedback afterwards.
    2) for what concerns kernel, uboot and stuff like that we already cross-compile. Could you explain better? Do you mean also for "little programs" in python, php or stuff?
    3) For a complete debug of the Cortex-M4 you need a JTAG connector. Anyway it's something advanced that we'll manage at a later stage. At the moment we're concentrated to make the whole stuff simple for beginners.
    4) The Cortex-M4 runs already a RTOS (MQX Freescale Real-Time OS). Regarding a ROS yours is a very good proposal. We'll try to contact this guy and let's see what happens.
    5)
    let us elaborate on these suggestions, we'll contact you later.
     
  3. JackSilb

    JackSilb Active Member

    Joined:
    Nov 3, 2015
    Messages:
    100
    Likes Received:
    32
    Hi Andrea,

    Excuse typos. I am trying to get this out quick without time to double check it.


    It is good to see a reply from you. I know you guys are busy specially now getting NEO out to people that backed the project.


    I complete understand the Udoo Team approach to keep it as simple as possible. First things first.

    I would consider the revenue streams you can have and work on them as priority allows:


    To start with, you will need a community to help, that will save you lots of work and create momentum. I believe that once people see the potential of the NEO platform for Education, Makers, IoT, Robotics and embedded system with Linux and RTOS on the same board, you should have nice communities or users in different areas to start toand take on some of the development as Open Source.


    Makers - people that are used to Arduino, Beagle Bone, Raspberry PI. At ~ US$45, when adding wireless programing and communication capability to the Arduino. For this stream, you are about on the right target price. The use of Arduino shields, the non-installation of special software required and reuse of code are winner combinations for this. Using the Neo as a computer to develop the code without the need to have a separate PC and specialized software can potentially bring lots of Makers to NEO. People can plug and play with the Arduino IDE assuming they are OK with the "slow" compilation / upload time compared to a notebook/desktop compilation.

    The Cloud9 would take this plug and play and easy to use to the people already using Beagle Bone.


    IoT Makers - Assuming you have good examples and partnership with the IoT portals, you can be a strong solution. Code here could continue to be Arduino / Cloud9, and some GUI in the Linux side, that does not require people to code, to configure the security, connection with the IoT portals, or connection directly to the Internet.


    IoT developers - People will probably want a server version of the Ubuntu (Lubuntu) image without X. I would say there is no need for X / Windows environment if you just want to use the NEO as a target computer.

    The development would be done on an external machine notebook / desktop then uploaded into the M4 and Linux.


    Embedded Systems - Like the features for the IoT Developer + RTOS option(s). You would develop the Board Support Package (BSP) so the developers don't waste time figuring out how to do the I/O but use the routines/functions/objects provided already to them at the BSP.


    Robotics - Like the features on the Embedded Systems + a implementation of ROS node. The ROS (Robot Operating System) is gaining lots terrain in research in the universities and robotics developers. Basically ROS users don't have to reinvent the usual robotics medium level functionality: move around, localization, sensors data processing, building maps, path planning, etc. They can focus on their own application development. ROS runs on Ubuntu. People have been placing a Linux machine in the top of the robot low level controller. Guess what!, NEO has it all in one board. Sure the processor may not be powerful enough for computer vision and other intense tasks, but it should be a good ROS Node to start development and talking to a higher performance Linux machine.


    I know, it sounds a lot. That is why you need the community to help.

    I hope this help.
    -Jack
     
  4. rreignier

    rreignier New Member

    Joined:
    Nov 7, 2015
    Messages:
    8
    Likes Received:
    3
    Hello Jack,

    I have also bought the Neo to use it in robotics with ROS. As you said, I think it has big potential in that field.
    But, when I saw the slow compilation and that the Arduino IDE with GUI is the only mean to program the M4 for now, I have decided to wait a bit. I would like to use the Arduino CLI interface or even directly the MQX Freescale libraries but there is no guide on how to use it for now.
    I understand the UDOO team is very busy for now to ship all the NEO so I will wait a bit.

    Romain
     
  5. JackSilb

    JackSilb Active Member

    Joined:
    Nov 3, 2015
    Messages:
    100
    Likes Received:
    32
    >1) it was on the roadmap. Currently we're testing cloud9. We'll let all of you know our feedback afterwards.


    Hello UDOO Team.

    Happy New Year.
    How are we doing on the Cloud9 availability?
    I was able to install it on NEO. It takes a looooong time if one is doing from NEO without using pre compiled packages.

    Just in case someone wants to play with it before the official release from UDOO NEO

    ---------------------------------------------


    Install Cloud9

    Got this information from
    http://stackoverflow.com/questions/29059620/ide-c9-install-locally-from-github
    "
    Installing cloud9 sdk is much simpler now. Make sure you have nodejs and git installed.

    Installing Git

    If you’re on a Debian-based distribution like Ubuntu, try apt-get:

    $ sudo apt-get install git-all


    Installing Node

    https://github.com/nodejs/node-v0.x-archive/wiki/Installation#installing-on-linux

    https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager


    sudo apt-get install node


    Then run

    git clone https://github.com/c9/core sdk

    cd sdk ./scripts/install-sdk.sh

    # this takes a long time on Neo, find something to do while you wait!



    Success!

    run 'node server.js -p 8080 -a :' to launch Cloud9

    udooer@udooneo01:~/git/sdk$





    To launch cloud9 use

    node server.js -p 8181 -l 0.0.0.0 -a :



    12/27/15 - Cloud9 worked

    https://gist.github.com/RIAEvangelist/6335743



    Here are the commands I used

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install -y python-software-properties python make build-essential g++ curl libssl-dev apache2-utils git libxml2-dev
    sudo apt-get update
    sudo apt-get upgrade
    cd ~
    mkdir git
    cd ~/git

    git clone git://github.com/c9/core
    git clone https://github.com/creationix/nvm.git ~/.nvm
    source ~/.nvm/nvm.sh

    #install some version of Node you want

    # this took a looooooong time. Find something to do while it installs it!
    nvm install 0.10

    got a warning to update npm

    sudo npm -g install npm@latest


    #install and start cloud9

    cd core

    sudo npm install packager

    sudo npm install




    It would be really nice to get a pre compiled package with the next UDOO release. Install optional.

    Also, make available some samples on how to do I/O in Python, C, C++ all available as projects in Cloud9. That way people can get up and running really quick and start prototyping.

    -Jack

     
    Matt_Neo likes this.

Share This Page