Programming in Toradex Colibri T20 evalutaion board - uart

I have with me the toradex colibri evalutaion board along with colibri T20. This is my first time I am developing applications for colibri. Lets say I want to make an application which send data using UART of board to PC and glow an LED. Now my question is should I start developing this on my laptop which has linux and eclipse installed or I can directly make this application on toradex(and if yes then how.?)
Also I didnt find any tutorial on Toradex website on how to start programming UART and GPIOs.

In general it is recommended to use cross compiling when working with ARM based systems. Your typical development PC has more performance/memory so you can faster build/change your program. Then you can use Ethernet/USB to deploy and debug your application on the target (Colibri).
Toradex has many samples and How Tos:
http://developer.toradex.com/knowledge-base/getting-started-with-toradex-arm-modules

Related

myRIO Module - Programming the FPGA Serial Flash memory vs the just programming the FPGA

I have and issue that the only way the FPGA on a myRIO Module runs is if it is programmed over USB. It does not run after powering down and back up. It does run after unplugging the laptop after it has been programmed over USB. I suspect that not running after a power cycle is because the FPGA is only getting the image loaded internally over USB.
Is there some special LabVIEW command to program the serial flash on the FPGA so that the FPGA runs at powerup, or does programming the FPGA over USB always program the serial Flash?
Do you have just FPGA part, and no Real-Time application? In case of just FPGA part, it is enough to build bitfile, and then deploy it (actually, upload it to myRIO and set to run at boot). Here is Knowledgebase article from NI about how to achieve it.
In case when you also have Real-Time part, then it should be also deployed, and set to run at the boot. Here is another detailed article about how to configure it: Deploy a Startup Application to Your MyRIO.

OpenThread support for OTA on EFR32

due to the discontinuation of the SL-Thread stack by Silicon Labs, we are considering migrating to OT for a new device in a system that is already based on EFR32s.
The device would be a relatively simple, mains powered FTD (think "range extender").
I am trying to estimate what the effort would be and in particular I am a bit worried about OTA firmware updates.
Looking at the EFR directory in the GitHub repo, I see:
no trace of the Gecko bootloader. Does this imply that we should use a regular Gecko bootloader build from the SL SDK? Or is there a OT-specific bootloader that I'm missing?
no trace of an OTA protocol (in SL'Thread there used to be a TFTP implementation and an dotdot implementation)
Is there any plan to have a OpenThread specific OTA method? Or is the official advice to use the GeckoBootloader and implement your own transfer protocol?
Thanks in advance,
Matteo
Jonathan Hui, tech lead for OpenThread, replied in the Google Group.
Quoting him: "The primary goal of the OpenThread project is to implement the Thread protocol. Given that Thread is a network-layer technology, it does not specify a protocol for OTA. Similarly, the OpenThread project does not include bootloaders and OTA in its scope."
I have lots of experience with the efr32 line of microcontrollers and, incidentally, I'm also attempting to port our Silicon Labs Thread implementations to OpenThread. So I think I can help you here...
If you only need a powered (assuming non-sleepy) full thread device this may not be too much of a problem. You can build the demo projects from the command line (either in Linux or Windows Subsystem for Linux) and just change one of the demo projects to meet your needs.
If you need an IDE build for advanced debugging functionality or just general usability this is much more of a challenge.
The bootloader may be a bit of an issue though. OpenThread is only designed to implement the Thread protocol and is generic so it can be used in a myriad of applications. You won't see any of the Gecko Bootloader stuff there, or any bootloader stuff for that matter.
The Gecko bootloader is essentially an application that runs after a microcontroller reset which looks for a Gecko bootloader image (.gbl) either in external flash or internal flash. If it finds an image it will overwrite the existing application and boot into it. If it doesn't find an image it will just jump to the application. So you're bootloader challenge is 2-fold.
1) The application has to put the .gbl image into the memory location the Gecko bootloader expects. There isn't a standard way to to this as far as I know, it's up to the application. My application, for instance, repeatedly polls a CoAP endpoint to grab chunks of the .gbl image to put in external flash (which is where my bootloader expects the image). Then when it gets the whole image it reboots.
The demo project for the efr32 boards in openthread use a linker script that doesn't include space for the Gecko Bootloader. You'll have to reverse engineer the linking process used in the Simplicity Studio build. It uses 2 linker files as well as some #defines to put the application in the correct location. Depending on your comfort level with the build process this may or may not be difficult.
A note of caution: If you need an migrate an existing Silicon Labs Thread stack based project to an OpenThread project you're in for a beast of a project. The Silicon Labs Thread stack integrates a simple non-rtos based scheduler and sleep functionality. OpenThread, even the efr32 demo projects, contain none of this. Because the Silicon Labs Thread stack is closed source, it makes this much much more difficult. I'm attempting to do this right now an it is very unpleasant. I wouldn't wish it on my worse enemy.

Can I run a LabVIEW webservice from Raspberry Pi?

I noticed that there's a recent released apps that enables Raspberry Pi to run a deployed LabVIEW program all by itself and to set the program run as RPi boots. Since I was planning to remotely control the LabVIEW program through the internet using a Web UI, is it possible to setup a webservice of the program on the RPi? By the way, I'm currently planning to use RPi 2 for my project.
If I am getting you right you are about LINX at Makers hub: https://www.labviewmakerhub.com/doku.php?id=blog:users:makerhub:2016-04-07-linx-3
It is open source, free tool. You are free to modify and it and add custom command on LINX Firmware as I understand. After that, you can call LabVIEW Custom Command vi which is part of the API.
You can have a look on all API VIs here: https://www.labviewmakerhub.com/doku.php?id=learn:libraries:linx:reference:labview:start
From the discussion thread here:
We're running the LabVIEW Runtime on the target just like we do on our Linux based RIO devices. The great thing about using the full runtime is that you get the standard LabVIEW expereince with interactive mode, highlight execute, probes, startup executables, etc. This also means that all of the core LabVIEW functionality will work. One way to think about it is anything that works without explicitly installing it on the target from MAX should work on BBB/RPI. We actually don't plug into MAX at all. We currently do not support any toolkits or modules, but we've been experimenting with a couple to see what it would take to support things like web services.
So native LabVIEW web services aren't available yet, but may be coming soon - I'm sure development is responsive to what people ask for, so go to that discussion thread and let them know your interest.
You might be able to 'roll your own' simple web service using the TCP VI's, which as far as I can see should be available on the Raspberry Pi.
Note that deployment to Raspberry Pi or (BeagleBone Black) is only licensed for noncommercial use, as stated in the same thread.

What's the relationship between the Intel Atom Developer Program and the MeeGo operating system?

I'm trying to understand the relationship between the Intel Atom Developer Program (IADP) and the new OS called MeeGo.
IADP let's me create applications that run on both MeeGo as well as Windows devices, as long as the device is based on the Atom processor. The IADP apps are published in an app store called AppUp, which is very much like the Apple App Store.
The MeeGo operating system merges Intel's Moblin and Nokia's Maemo into one OS. The purpose seems to be to make it possible to develop software that will run on Intel powered devices, Nokia-made devices, as well devices from other companies. Nokia has its Ovi Store that will support MeeGo apps.
With its OS independent runtime, the question is what an IADP app really is? Is an IADP app a beast of its own, or is it just a MeeGo app that has been restricted to run only on Atom powered devices?
Will it be possible to recompile my IADP app to run on all MeeGo devices? Sold in Ovi Store?
Intel and Nokia have me really confused. Where should I go as a developer?
If you really have to decide now, go qt.
There are a lot of important decicions yet to be made. Last week on embedded systems Nürnberg, I spoke to both parties about meego, and even they have been preparing the merger behind close doors, very few people inside both companies were involved so far. No wonder developers are clueless at the moment. You are not the only one beeing confused.
I have been developing for atom but never with iadp and start developing with maemo. Qt is a save bet for developers because it is not only for Intel and Maemo, but used heavily in every major hardware platform so far. I decided to be happy about every advantage the MeeGo merger gives me and go with the progress of details being sorted out.
My guess: Don't wait for selling IADP apps in OVI store.

Using a Mini/Parallels virtual environment for development?

My main Windows development PC, running Vista Business, is getting a little long in the tooth and I'm considering replacement. Its a dual screen setup with 24" and 19" monitors. My laptop is a reasonably new Macbook and I've been using Parallels to mount a Virtual XP system on it for some time and have been pretty impressed.
The new Mac Minis appear to have dual screen support, and I'm wondering about replacing the PC box with a fully spec'ed (4Gb Ram, 2.3Ghz processor) Mac mini and mounting Parallels VM environments for development. On the face of it this has a lot of attractions - clean development environments etc. but I'd appreciate any advice from anyone who has taken a similar approach - is it feasible and robust enough for general day to day development work?
My specific development requirements are that all my clients are predominantly PC based and over two thirds of my development work is now web based anyway. However I do have a couple of legacy Delphi 6 systems (and I'm considering a Delphi 2009 upgrade) and one .Net 1.1 Windows Mobile application. I also have a considerable number of Access/SQL Server applications I look after, all those these are generally coded directly on clients machines and the need to replicate locally is rare, it would however be useful. There's also the possibility of Win32 based development in the future, and I tend to do a lot with 3D and OpenGL technologies. For non-coding applications I also run and use Maya and Photoshop on the PC fairly regularly.
I bought an Aluminum MacBook a couple months ago, got additional ram in order to have 4 gigs and I've successfully virtualized Windows XP with 3D acceleration using VMWare Fusion. I'm currently developing web applications using PHP and Javascript, some other projects with Java and playing around a little bit with XNA 3.1, all on my MacBook .. so, If this works for me it could work for you too!
You're probably not going to want to do much graphics work through Parallels' emulated video adapter.