MCCI https://mcci.com The Better Connection Sun, 03 Mar 2019 19:51:55 +0000 en-US hourly 1 https://wordpress.org/?v=5.2.3 https://mcci.com/wp-content/uploads/2018/11/icon2-150x150.png MCCI https://mcci.com 32 32 158541821 MCCI supports pi64.win project with USB drivers https://mcci.com/blog/mcci-supports-pi64-win-project-with-usb-drivers/ https://mcci.com/blog/mcci-supports-pi64-win-project-with-usb-drivers/#respond Tue, 26 Feb 2019 02:08:00 +0000 https://mcci.com/?p=3214
MCCI recently has invested a lot of energy supporting the pi64.win project. This project has a simple (and possibly silly-sounding) goal: get “real” Windows 10 running on a Raspberry Pi 3.

Many people have posted about the technical advances that have made this possible. Here’s a partial list.

  • The Raspberry Pi 3 supports the 64-bit ARM64 architecture.
  • Microsoft ported Windows 10 IoT Core (as a 32-bit operating system) to the Raspberry Pi, but targeted using the system for deploying embedded applications (kiosks, single-function computers). They omitted the features that make Windows 10 desktop a general-purpose system. (MCCI did the USB drivers for that project.)
  • Microsoft ported Windows 10 desktop to ARM64 systems. In this port, they included the key low-level drivers, apart from USB, needed for the Raspberry Pi.
  • Microsoft open-sourced the key ACPI / UEFI code needed to boot Windows 10 on a 32-bit Raspberry Pi.
  • Andrei Warkentin then adapted that and make a real ARM64 UEFI BIOS — this enables booting all kinds of “professional” operating systems on the Pi, not just Windows 10. He also managed to make USB work “well enough” to support keyboard and mouse — kind of important for setting up the BIOS!
  • José Manuel Nieto Sánchez organized a group of volunteers, and wrote an tool that would prepare an SD card with the required information from a Windows distribution, available through Windows Insider, MSDN, and other sources for non-commercial use.
  • Bas Timmer posted simple drivers that were enough to get Windows through the boot.
  • The group convinced Microchip to release ARM64 drivers for the USB Ethernet controller that’s on the Pi 3 mainboard.
  • Finally, the group hammered on me until I agreed to take the time to bring up the MCCI host stack (TrueTask USB) on ARM64.

The result was a flurry of world-wide attention. Perhaps predictably, there has been a lot of grumbling about performance. On the other hand, it looks a great demo for MCCI drivers; almost everything tested works. (It’s also a good demo for MCCI’s portability techniques; after four days of wrestling with the build system, the very first build we put on the hardware was the final version, apart from changing the version.)

MCCI has also put a lot of effort into organizing a website (pi64.win) and a discussion site (discourse.pi64.win) for the community, in collecting statistics, running the Twitter feed (@Pi64Win), and helping to publicize the effort.

So, the New York City question is: why do it? What’s your angle?

Of course, there is the basic commercial reason: to demonstrate that our drivers really are industrial strength in 2019. It was a big deal that our drivers were used in Windows 10 IoT Core, but that was a few years ago now. We can now point to a more recent success. In addition, there are a lot of device classes that were impossible to test on Windows 10 Core IoT, because of the difficulties in running regular Windows applications. It’s one thing for a webcam to enumerate; its another for it to actually stream interesting data to the application of your choice. It’s a lot easier to test if you can just spin up a video capture app. We can now point to public results from people testing our work. This is good, and so I thank the group for doing all the work to test and post results.

But there’s another reason, linked to MCCI’s social mission. We want to make a difference to people, not just to our customers.

Right now, cheap computing for people with few economic resources is subsidized (students are a prime example, but just one such group). Things like Chromebooks are subsidized by harvesting data; and they are limited in terms of what they can do (beyond the limitations imposed by their price).

That strikes me as wrong, and as a 19th-century way of solving the problem.

It’s already clear from group experiments that the Pi 3 is not that far away from being able to do significant work with Windows 10. If the group can make something useful to students and people with limited financial resources, it’s not a hobby: it can change lives.

The pi64.win project very likely will not, in itself, put a $35 computer in every student’s backpack (though I wish it would). But it demonstrates what can be done with very low-cost hardware, and it serves as a proof of concept. It may motivate some of the other (larger) members of the ecosystem (Microsoft, the Raspberry Pi Foundation, the Mozilla Foundation) to come together to create a production version.Sometimes a proof of concept is what’s needed to break through inertia and doubt.

]]>
https://mcci.com/blog/mcci-supports-pi64-win-project-with-usb-drivers/feed/ 0 3214
USB-IF Compliance Testing Tips #2 – Pre-Compliance Testing https://mcci.com/blog/usb-if-compliance-testing-tips-2-pre-compliance-testing/ https://mcci.com/blog/usb-if-compliance-testing-tips-2-pre-compliance-testing/#respond Sun, 04 Mar 2018 19:58:52 +0000 http://mcci.com/?p=1757
One question we are often asked is, “How long will the testing take?” The answer to this question can lead to very different consequences depending on the vendor’s schedule. If the device is expected to go on the market within the next year, then the answer is merely logistical. However, if the device is expected to go to market next week, then testing at this point is a leap of faith, simply because there is no guarantee that the device will pass. Time for debugging must be a factor in test scheduling.

No matter how well constructed, well engineered, and well thought-out a device is, there are always corner cases that can force the device to stumble. Therefore, when scheduling the compliance test, it is important to allocate some time for troubleshooting and debugging potential problems. These problems may not be the obvious ones like signal quality, basic enumeration, or inrush. The problem can be a very subtle failure: for example, the device might fail because it draws too much current on a hub with a suspended port. Or perhaps it has a back-drive failure because the D+ pull up is hardwired. Regardless of the type of failure, it is important to recognize that there may be unforeseen difficulties. Therefore, if it is feasible, testing should be scheduled around these unfortunate possibilities.

Developers should consider the benefits of testing before the ultimate factory-grade product is complete. This can be done internally or through a test lab. MCCI frequently tests devices that are not in their final state. We perform what we call half-tests on devices that may not even have OS drivers yet. While bringing such a device to an actual USB-IF Compliance Workshop may not be worth the time and effort, we strongly advise you to either send your unfinished devices to a certified test lab like MCCI or to test them internally. Ultimately, the time and money you spend on testing early in the development will save you money overall. The cost of running a half-test on a development platform with the silicon that will be in the final product is much less than the cost of re-spinning the silicon later.

Naturally, early testing might not catch everything. There can always be PCB layout changes or changes in the manufacturing BOM that cause unintended results. Last-minute problems are very frequently encountered and can never be completely eliminated. Still, more often than not, early testing and adequate planning to include enough debug time during the final test will greatly alleviate the ravages of any last minute catastrophes that do arise.

]]>
https://mcci.com/blog/usb-if-compliance-testing-tips-2-pre-compliance-testing/feed/ 0 1757
USB-IF Compliance Testing Tips #1 – Command Verifier (CV) https://mcci.com/blog/usb-if-compliance-testing-tips-1-command-verifier-cv/ https://mcci.com/blog/usb-if-compliance-testing-tips-1-command-verifier-cv/#respond Sun, 04 Mar 2018 19:55:25 +0000 http://mcci.com/?p=1748
The process of obtaining USB-IF certification can be difficult, but not just because of the specification requirements. Often developers uncover problems not related to USB compliance during certification testing. For this reason, it can be helpful to test as early as possible, preferably well before the product is scheduled to be released. Of course, it is not always possible to test early, either because product requirements are in flux, extensive debug is necessary, or even because final hardware is not available. It occurred to us here at MCCI that it might be helpful for us to outline some tests that engineers can perform on their USB products in advance of those products entering the Compliance Lab. Using them may help flush out compliance problems during normal, pre-test development.

The tests we are recommending are tests that most consumer electronics product engineers should be able to perform with a small hardware investment and as little overall cost to their test budget as possible. After all, with the economic environment being what is, anything we can do to help companies avoid extra test costs or delayed market releases is for the best. Some of these tests we’re going to tell you about come from the USB-IF compliance test suite, while others are our original work. Regardless, it is our hope to help you achieve USB-IF compliance for your USB product.

CV

This handy tool is a bit of software that the USB-Implementers Forum (USB-IF) uses to test a device’s basic functionality. CV, or Command Verifier, tests for compliance with Chapter 9 of the USB 2.0 specification. CV is one of the most helpful tests a developer can run on their device. Run it as early as possible. It will test enumeration, the device’s descriptors, and the device’s response to a number of specific requests.

The CV test program is free and can be downloaded from the USB-IF website:

http://www.usb.org/developers/tools/

Setup is fairly straightforward. In addition to the device, all the user needs is a high-speed host controller and a high-speed hub. When CV runs it takes control of the high-speed host controller (EHCI). The high-speed hub is then plugged into the host, and the device being tested is plugged into the high-speed hub. CV enumerates the device being tested without the use of any Windows drivers. CV can be run on either Windows XP or Windows 7 systems.
CV sends various commands through the bus, analyzes the responses from the device, and logs the various results into an html file. While it does not test every aspect of the Chapter 9 requirements, a passing test assures developers that they are on the right track.

]]>
https://mcci.com/blog/usb-if-compliance-testing-tips-1-command-verifier-cv/feed/ 0 1748
Introducing the Type-C SuperMUTT https://mcci.com/blog/introducing-the-type-c-supermutt/ https://mcci.com/blog/introducing-the-type-c-supermutt/#respond Tue, 20 Feb 2018 03:33:21 +0000 http://mcci.com/?p=811
MCCI introduced our Model 3501 Type-C SuperMUTT today, the latest addition to our line of USB development tools!

You may be wondering, however, “What’s a SuperMUTT?”

Let’s break it down.

In the beginning…

Back in the early days of USB 2.0, Microsoft needed a tool that would let them verify the operation of high-speed host controllers and of their USB host stack. So they invented a test tool, and named it the “Microsoft USB Test Tool”, or “MUTT“.  This device has a Cypress FX2 controller chip and a lot of test firmware that let it emulate a variety of devices and thoroughly exercise all four transfer types on USB: bulk, interrupt, control and isochronous. It was a small device, that plugged into the USB port like a thumb drive.

The next generation…

When USB 3.0 came out, Microsoft wanted a similar tool for testing SuperSpeed host ports. So the “SuperMUTT” was born.  This device has a Cypress FX3 controller, which adds SuperSpeed support (now known as USB 3.1 gen 1, or 5 gigabit USB).  Again, they added a lot of firmware and host software, but the concept was the same — a small devic ethat plugs into the USB port like a thumb drive.

Type-C

I suspect you can guess where this is going.  The Type-C SuperMUTT is simply the SuperMUTT, enhanced for Type-C support. But why is it so much bigger?

Well, the Type-C connector can do a lot more than the original Type-A connector.  For example:

  • You can power your PC through the port
  • You can use DisplayPort alternate mode to drive a monitor from the port
  • If your PC is running from another power source, you supply a lot of power to external devices

This is very nice for the user, but it’s a big job to test Type-C software thoroughly.  So the Type-C SuperMUTT adds the following features to the original SuperMUTT

  • Support for signaling over the CC wire of the Type-C cable
  • Support for the USB Power Delivery specification
  • Ability to pass power from an external supply to the unit under test (as instructed by the Power Delivery specification)
  • Support for alternate modes, particularly DisplayPort
  • Support for connecting to an external charger, again for testing.

In order to be able to accurately emulate all the variants of the PD specification, the PD interface is implemented with a Lattice iCE 40 UltraPlus FPGA. This gives the ability to emulate the different design decisions of different manufacturers, as well as the ability to emulate and inject various kinds of faults.

With all of this functionality, and all of the electrical power that can be handled, we needed to have a fan. And we needed to have a robust enclosure.

Hence the model 3501 as you see it above.

As you might guess, the 3501 was developed in conjunction with Microsoft; they’ll be supplying the Windows test software and embedded firmware for the product. We’ll be receiving the second production lot in late September, and we’re taking orders now via our online store.

A slight digression

You might have noticed that some of our literature calls the Model 3101-family of USB Connection Exercisers the “MUTT ConnEx-C”. This is because it’s really a part of the Microsoft USB Test Tool family (and you can see it here on the MUTT page at Microsoft).

Conclusion

Interested in learning more about the details? Post a comment here with your questions, or tweet me at @TmmMCCI, and I’ll do my best to answer.

]]>
https://mcci.com/blog/introducing-the-type-c-supermutt/feed/ 0 811
TrueTask USB Host Provides Connectivity for Windows 10 IoT Core on Raspberry Pi 2 https://mcci.com/blog/mccis-truetask-usb-host-provides-connectivity-for-windows-10-iot-core-on-raspberry-pi-2/ https://mcci.com/blog/mccis-truetask-usb-host-provides-connectivity-for-windows-10-iot-core-on-raspberry-pi-2/#respond Thu, 09 Jul 2015 08:00:48 +0000 http://mcci.com/?p=302

MCCI Supplies Quality USB Stack as part of Microsoft’s “Internet of Things” Platform

ITHACA, NY, July 8, 2015 – MCCI® is providing its TrueTask® USB Host stack as the connectivity engine for Windows 10 IoT (“Internet of Things”) Core operating system, targeting the Raspberry Pi 2 platform.

McKinsey Global Institute forecasts a $6.2 trillion annual IoT opportunity by 2025. The Raspberry Pi 2 is a very popular platform in the maker movement, providing remarkable computing power at a very low price. A high-quality USB host stack is a critical enabler for making Windows 10 on Raspberry Pi 2 a first-class platform for IoT development. MCCI’s TrueTask USB Host is proven technology that has been extensively tested, validated, and deployed on a mass scale by MCCI’s customers.

“With more than 10 billion USB devices shipped, and hundreds of thousands of different kinds of devices, USB is the most popular connectivity interface for device developers,” said Terry Moore, CEO, MCCI. “However, creating USB host stack is risky because of the testing and requirements needed to be compatible with the huge variety of devices. Our TrueTask USB platform is pre-tested and pre-verified so our customers can focus on enhancing their IoT products and don’t have to worry about USB connectivity.”

When preparing Windows 10 IoT Core for the Insider Preview release for Raspberry Pi 2 earlier this month, Microsoft Corp. needed a USB stack that could support the Synopsys USB core at the same level of quality as the Windows EHCI stack. The Raspberry Pi 2 SoC uses a Synopsys DesignWare USB 2.0 IP core to provide the USB host function, which is not compatible with the EHCI and XHCI register models used in traditional PCs, so the standard Windows stack could not be used. With 10 years of experience supporting the Synopsys core in deeply embedded systems, and 5 years of experience offering USB 3 host support for Windows 7, 8 and 10, MCCI readily ported its advanced USB stack to the Raspberry Pi 2.

MCCI’s TrueTask USB stack is based on the MCCI USB DataPump, which has been the “go-to” product for adding USB support to sophisticated consumer products for more than 20 years. MCCI’s TrueTask USB Host is platform agnostic, which makes it available for any hardware-software combination.

In addition to licensing USB system software, MCCI offers design consultation, integration and customization services as well as USB validation and hardware testing.

]]>
https://mcci.com/blog/mccis-truetask-usb-host-provides-connectivity-for-windows-10-iot-core-on-raspberry-pi-2/feed/ 0 302
RealVNC selects MCCI as Automotive Partner https://mcci.com/blog/realvnc-selects-mcci-as-automotive-partner/ https://mcci.com/blog/realvnc-selects-mcci-as-automotive-partner/#respond Tue, 12 Nov 2013 01:11:41 +0000 http://mcci.com/?p=1767
TOKYO, JAPAN, November 11, 2013 – RealVNC Limited, the original developer and leading provider of VNC® remote access and control software, and MCCI Corporation, the inventor of the industry standard USB NCM protocol for high-speed networking over USB,  today announced that RealVNC has selected MCCI as their preferred supplier of NCM class drivers for use with RealVNC’s VNC® Automotive products.

VNC Automotive is a collection of software modules that allow automotive head units and other consumer electronic products to incorporate comprehensive remote access and remote control capabilities for integrating smart phones with in-vehicle information and entertainment systems.

“Users are able to access their mobile content, such as navigation applications, traffic updates, music libraries and internet radio stations from the vehicle’s main display unit,” said Tom Blackie, VP Mobile at RealVNC. “The mobile device can be directly accessed and controlled from the vehicle’s head unit touch screen, bezel keys, steering wheel switches and by voice command, ensuring content can be accessed safely and simply. VNC Automotive gives OEMs a single common solution with access to the widest coverage of mobile devices, including many existing legacy devices already in use with end users.”

VNC Automotive is commonly used to connect smart phones to cars using USB. According to Terry Moore, CEO of MCCI, “USB provides an inexpensive, secure and high-throughput data connection, and can charge the phone while the user is accessing their mobile content. However, USB implementation is not as simple as it seems, and the user’s experience is frequently limited by the quality of the underlying USB implementation.”

Advanced phone/car connectivity is built using existing industry standards. MirrorLink™ (from the Car Connectivity Consortium) uses the VNC protocol and NCM over USB to integrate the phone with the car.  Apple’s iPod OUT performs similar functions in a way that is optimized for Apple’s products.

NCM is the unifying technology that allows modern protocols to run over USB without tailoring the protocols specifically for USB. NCM bridges between Ethernet-style datagram traffic and native USB. It is optimized for moving IP traffic between embedded systems at very high speeds. “We have found that MCCI’s implementations of NCM are consistently of the highest quality, and deliver the highest throughput for the user’s mobile content,” said Blackie. “As the key contributors and editors of the NCM specification, they know how to translate the requirements of the specification into fast, effective implementations. Our customers typically see a 5x increase in overall system throughput, especially for video content. Their years of experience supporting phone and platform OEMs in Japan, Korea, and Europe translate directly into higher quality code, more stable implementations, and better support for our VNC Automotive customers. Their cross-platform development strategy aligns very closely with the platforms we support.”

“Like RealVNC, MCCI specializes in delivering OEM software,” noted Moore. “MCCI supports all the same operating systems and target CPU architectures supported by RealVNC. We both support Linux, Android, Windows (XP, Automotive, CE), QNX, µITRON, and T-Kernel; running on ARM, x86, MIPS, and SH architectures from a variety of SoC vendors.”

“Automotive electronics makers often underestimate the complexity of providing a consumer-grade solution,” said Blackie. “They may try to do the higher level protocols themselves at first, but soon discover that VNC Automotive is easier and allows them to get to market more quickly. The critical nature of the USB connection is also often overlooked. The NCM specification is only 36 pages long, so appears deceptively easy to implement. We’ve had many customers come close to failing, based solely on the poor quality of the USB connection. Now, because of this partnership, they can easily get access to an integrated, pre-tested solution that meets international market needs, and interoperates with the widest possible range of smart phones.”

About RealVNC

RealVNC’s software is used by many hundreds of millions of people worldwide in every sector of industry, government and education. VNC is the original remote access software with a wide range of applications. The technology supports an unrivalled mix of desktop and mobile platforms and can be embedded in third-party products with a commercial license. www.realvnc.com

VNC is a registered trademark of RealVNC Ltd. in the U.S. and in other countries.

MirrorLink Certified™, the Design Only™ Certification Logo, MirrorLink™ and the MirrorLink™ Logo are certification marks and trademarks of the Car Connectivity Consortium LLC. Unauthorized use is strictly prohibited.

About MCCI

MCCI is a leading developer of embedded USB software for the high-volume personal computer and portable device markets. Customers include some of the world’s biggest brands in telecom, wireless, embedded and consumer devices including Qualcomm, Intel, Apple and Sony. Nearly one billion products have been delivered with MCCI technology. MCCI experts are actively involved in worldwide Technical Standards activities. A privately held corporation, MCCI has its headquarters in Ithaca, NY, with additional offices in New York City, India, Korea, Japan, and Taiwan. Visit MCCI on mcci.com, Facebook and Twitter.

# # #

Note to Editors: MCCI, USB DataPump, and TrueTask are registered trademarks of MCCI Corporation. Other names mentioned are owned by their respective holders.

]]>
https://mcci.com/blog/realvnc-selects-mcci-as-automotive-partner/feed/ 0 1767
https://mcci.com/blog/3549/ https://mcci.com/blog/3549/#respond Mon, 30 Nov -0001 00:00:00 +0000 https://mcci.com/blog/3549/ https://mcci.com/blog/3549/feed/ 0 3549 https://mcci.com/blog/3547/ https://mcci.com/blog/3547/#respond Mon, 30 Nov -0001 00:00:00 +0000 https://mcci.com/blog/3547/ https://mcci.com/blog/3547/feed/ 0 3547 https://mcci.com/blog/3546/ https://mcci.com/blog/3546/#respond Mon, 30 Nov -0001 00:00:00 +0000 https://mcci.com/blog/3546/ https://mcci.com/blog/3546/feed/ 0 3546 https://mcci.com/blog/3545/ https://mcci.com/blog/3545/#respond Mon, 30 Nov -0001 00:00:00 +0000 https://mcci.com/blog/3545/ https://mcci.com/blog/3545/feed/ 0 3545