10 Replies Latest reply on Mar 27, 2018 5:34 AM by Pietro Francesco Maggi

    Where to start! Zebra MC2180 Development

    Ben Locke

      Hi everyone.


      We've just purchased some Zebra MC2180 devices and intend to write a simple app for various stock control functions that we require.  I am no guru, but have written a few C# .net utilities before, and have a strong background in web development technology.... I've spent the last 2 days pulling my hair out, trying to just get a simple 'hello world' app started for our MC2180 devices...


      The Zebra literature sings the praises of the RhoMobile software, but so far, we're unable to compile anything.


      I have followed the instructions as best I can from rhodes/WM_CE_Installation_And_Build_Guidelines.md at master · rhomobile/rhodes · GitHub (and wow, aren't there a lot of them!) however I stumble at "Download and install MC3000c50b PSDK" - this file isn't freely available from Zebra, and despite filling in the request form, nobody at Zebra has got back to me.


      So my questions are....


      1) Is it true that we have to use Visual Studio 2008 for windows CE 6.0 development? That's almost 10 years old....


      2) Is there no "simple" way to get up and running with a simple hello world App on CE6.0 on the MC2180, or is it a case of following as best we can all of those instructions and hoping that something compiles at the end of it? 


      3) Do we need to use RhoStudio? Is it better/easier than Visual Studio? Do we lose the ability to use the Zebra API's for scanning for example if we don't use RhoMobile?


      4) The docs for all of this seem very scattered.  Are we chasing old outdated hardware here (despite buying these scanners brand new this week!), would we be better using something that's easier to develop for? Android perhaps? We don't need anything more than basic scanning ability and interfacing with a PHP web backend via XML / JSON.



      Thank you in advance team!

        • Re: Where to start! Zebra MC2180 Development
          Daniel Silva

          If you want to develop C# apps for CE, you would need Visual Studio 2008.  That is still available if you have an MSDN subscription.  If you have written C# apps before, this would probably be the easiest way to get started.  This is the way most of our customers develop a device based app for these devices.   You could download our EMDK for .Net.  Look at the release notes for specifics of what versions of VS you need and the addons.


          EMDK for .NET Support & Downloads | Zebra



          Some of the MC21XX devices came with the RhoElements V2 browser preloaded on them.   If your configuration is one of those, there are APIs that you could use to build a Web based app that has access to the scanner and device features like that.  You could even host the web app on the device itself if you wanted to. This might be where the reference to RhoMobile was coming up, since the RhoElements browser is part of the Rhomobile suite. Below is a link so you can see the APIs that are exposed in the RhoElements Browser V2.2.

          Rhomobile | Mobile API Compatibility


          Note that the RhoElements browser is not the same as building an app with the RhoMobile Suite.  You do not need RhoStudio to work with that, it is really a browser with added APIs for our device features. 

            • Re: Where to start! Zebra MC2180 Development
              Ben Locke

              Many thanks for your info. I already have that downloaded... Is there perhaps a tutorial or some sample code we can take a look at using VS 2008 and the EMDK?




              I did make some progress earlier, RhoStudio will compile and run in the simulator, but won't publish.  It cites "


              vcbuild.exe : error VCBLD0004: Project 'CoreAPI.vcproj' does not contain a configuration called 'Release|MC3000c50b (ARMV4I)'.

              rake aborted!




              I believe I need the PSDK but that is a protected download on the Zebra site and despite 3 emails and 2 phone calls, I cannot get anyone to answer me about how I can download it?   That's the "Version 2.0 for Professional Operating System" from the page at

              MC2100 Platform SDK Support & Downloads | Zebra

              • Re: Where to start! Zebra MC2180 Development
                Daniel Silva

                There should be some emdk sample apps here on your PC.

                C:\Users\Public\Motorola EMDK for .NET\v2.9\Samples VS2008\C#


                For a CE RhoStudio app,  you would actually need the PSDK for the MC3000.  All RhoStudio CE apps use that same PSDK.   I can see why you are frustrated, because it looks like the new support site no longer has any of the files for the older MC3000 devices.  If you call support hopefully they can find that for you.  You would not need any PSDKs for the ..Net app though.

              • Re: Where to start! Zebra MC2180 Development
                Ben Locke

                Thanks for the help guys, we now have the outline of our application.


                However, we're hitting a few weird issues. In our (currently very basic) application, after around 10 barcode scans, all font styles disappear on all labels, buttons, etc. and revert to their default style.


                If we call a debug.writeLine() on the .font.style property of an affected button, it usually returns "bold" - but when this error randomly strikes, it throws an exception.  The font property is not evaluation correctly and the preset style is lost...


                "   at Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar)\r\n   at System.Windows.Forms.Control.get_Font()\r\n   at MC2180.Form1.scanNotify(ScanDataCollection scanDataCollection)\r\n   at System.Reflection.RuntimeMethodInfo.InternalInvoke(RuntimeMethodInfo rtmi, Object obj, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)\r\n   at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess, StackCrawlMark& stackMark)\r\n   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)\r\n   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)\r\n   at System.Windows.Forms.Control.TASK.Invoke()\r\n   at System.Windows.Forms.Control._InvokeAll()\r\n   at System.Windows.Forms.Control.WnProc(WM wm, Int32 wParam, Int32 lParam)\r\n   at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)\r\n   at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)\r\n   at System.Windows.Forms.Application.Run(Form fm)\r\n   at MC2180.Program.Main()\r\n"


                A bit of Googling suggests than an update to the Win CE 6.0 will fix the issue, however - I can't see how to update our version of windows CE... Tried plugging the device in with Windows Update on host machine - no updates are found.  Tried downloading the new January 2017 release CFE_MC21_CE_043422_CP_v010100_e_WB.cab from the Zebra support site - but ho hey, it's restricted and no doubt I won't be allowed to install it....


                How can we proceed?