Category Archives: How to

PiMSO network connections

It came to our attention that the different modes of operation is difficult to understand, so here are some block diagrams to explain the network connections. In the fullest form, the PiMSO can interact with world via different paths.

PiMSO_fullmode

In this configuration, it is connect to world via Wifi dongle, Ethernet cable and a monitor.  Internally, the PiMSO occupies three networks: 127.0.0.1, 192.168.100.x and dhcp client network.  The Nginx web server simply serves the WebMSO28 web pages to any device that asks for it. Since Nginx does not care about which IP address that it serves to, we can pare the connection to the Raspberry Pi down to the just the monitor connection, which gives you this.

PiMSO_localhost

With a keyboard and mouse, WebMSO28 pages runs locally under the Midori browser.   If the Raspberry Pi is web enabled, ie. connected to a router via the Ethernet cable.   This allows device that is internet routable to access the PiMSO.

PiMSO_ethernet

What if you are at a location that there is no internet? nor do you have access to keyboard, monitor and mouse?  In this situation, the bare minimum that you need is the Raspberry Pi, a Wi-Fi dongle, the MSO-28 and a Wi-Fi capable smart device.

PiMSO_wap

Add the Ethernet cable if you want to share the PiMSO with the world.

PiMSO_headless

Hopefully this will clarify some confusion regarding the possible network options available to the PiMSO.

PiMSO

PiMSO, is a Raspberry Pi controlled 200Msa/s mixed signal oscilloscope.  PiMSO, a spinoff of WebMSO, is an experimental project to understand the necessary components required to deploy the MSO-28 mixed signal oscilloscope on mobile devices.  With the ever growing list of mobile platforms, it became very difficult for PC based instruments developer such as Link to keep up with the demands to supply driver applications for various platforms.  Upon examining the complexities required with different solutions, we arrived on a client/server solution.  The client part would be web browser based, because of the near universal availability on most devices.  Browser based also meant driver free deployment on the mobile devices.  The challenge would be to create an affordable gateway server to the MSO-28.  After experimenting with various embedded solutions, we realized that we cannot manufacture an affordable solution at our sales volume.  With the availability of existing low cost ARM based devices on the market, it would be more economical for our MSO users to leverage these and roll their own solution while we provide server side hardware driver support.

To date the WebMSO solution has be deployed and tested on the Raspberry Pi, Beaglebone, MK802, Pogoplug and Seagate Dockstar.  Of the above deployments, MK802 with the built in Wi-Fi offered the most integrated  solution.  While the Raspberry Pi offered the lowest deployed cost for our users.  To encourage others to expand upon our work, we decided to release an early Beta version of the PiMSO iteration of the WebMSO as an open source project.

Early on in the project we realized that while the Raspberry Pi is a convenient development platform, an user cannot easily attach it to an existing Wi-Fi network.  Without a simple method to provide Input and output to the Raspberry P, it can be quite difficult for the user to setup Wi-Fi network access on the Pi.  Although LCD I/O add on cards exist on the market, the additional height precludes the use of off the shelf Raspberry Pi enclosures.

With our in house capability to perform low volume production, we set out to create our own low cost Raspberry Pi + LCD solution, thus the PiLCD was born.  The PiLCD quickly found uses beyond the original purpose of providing an I/O portal for network information.   With the dual USB ports on the RPi, the PiLCD became a gamepad -> LEGO Mindstorms robot interface device via a Bluetooth connection.  It is currently deployed as part of an interactive exhibit at various science museums across the world to engage young children about robotics.

To create the minimal PiMSO soluton, one will need a Raspberry Pi and a MSO-28.  In this configuration, the default MIdori browser will access locally served client side code served by Nginx with spawn-fcgi acting as a hardware gateway access to the MSO-28.  Although  functional, due to slowness of  X-window, the PiMSO client side response is quite sluggish on the Pi.  Hopefully by the time Wayland is deployed on the Raspberry Pi, the client side code will be more responsive.  To check out the true responsiveness potential, one can connect an Ethernet cable to the Pi and access the MSO-28 via a mobile device or a PC on the same network.  The difference between Midori and a faster browser is quite apparent.

To truly realize the potential of this project, add a Wi-Fi dongle and a 5V USB battery pack.  Together you will have a battery powered wireless 200Msa/s mixed signal oscilloscope that runs on your phone or tablet, be it IOS, Android or Windows.  With each PiMSO acting as a unique server, multiple units can be deployed and monitored remotely.  A possible application is in  the modern classroom where students are assigned personal tablets and need to share their live circuit data with the instructor.

 The wiki instruction on how to roll your own PiMSO is available here.