Despite our hopes and effort to create an innovative and low-cost T&M solution, we’ve received consistent negative feedback on the OpenScope MZ and OpenLogger regarding overall reliability that has led us to determine that it is not up to our high standards for our test and measurement products. Unfortunately, we are unable to fix many of the issues, so we have made the difficult decision to pull both products, and related accessories from our shelves. This will allow us to ensure we can continue to deliver on the Digilent brand promise and focus our efforts on expanding our popular and core line of Test and Measurement Products. The materials on this page will remain here as legacy sources. Any Digilent provided support for this material will be extremely limited at best. Thank you for understanding. ====== OpenLogger Reference Manual ====== OpenLogger is a wireless data logging and data acquisition device that can be controlled via USB or WiFi. Using a computer or mobile device, signals from circuits and sensors can be acquired, stored, analyzed, visualized, and generated. OpenLogger makes it easy to monitor multiple analog inputs and simultaneously log the data to an SD card, and/or stream over USB or WiFi, all through [[http://www.waveformslive.com|WaveForms Live]]. {{Digilent Image Gallery | image = {{ :reference:test-and-measurement:openlogger:openlogger-acrylics-use-600.png?direct |}} | image = {{ :reference:test-and-measurement:openlogger:openlogger-acrylics-top-600.png?direct |}} | image = {{ :reference:test-and-measurement:openlogger:openlogger-acrylics-bottom-600.png?direct |}} | image = {{ :reference:test-and-measurement:openlogger:openlogger-acrylics-rear-600.png?direct |}} | image = {{ :reference:test-and-measurement:openlogger:openlogger-use-600.png?direct |}} | image = {{ :reference:test-and-measurement:openlogger:screwterminaladapter_for_openlogger-use-600.png?direct |}} }} ===== Features ===== * Connectivity * ATWINC1500 WiFi chip (802.11n) * USB 2.0 (High Speed Required) * Analog Inputs * 8 Channels * 12-bit resolution per channel * 500 kS/s sample rate * 50 kHz of bandwidth at -3dB * 1 MΩ of input impedance * ±10 V input voltage range * Maximum buffer size of 32640 samples per channel * Function Generator * 1 Channel * Sine, triangle, sawtooth, square and DC outputs * 10-bit resolution * 2 MS/s sample rate * 3 V pk2pk output with ±1.5 V offset * 10 mA output current * 25000 sample buffer size * Logic Analyzer and GPIO * 10 Channels multiplexed between the Logic Analyzer and as general purpose IO * 3.3V CMOS logic for both the Logic Analyzer and GPIO * 7 mA source and 12 mA sink when used as GPIO * Logic Analyzer has a sample rate of 10 MS/s * Maximum buffer size of 32640 samples per channel for the Logic Analyzer * Power Supply * 2 Channels * ±4 V output voltage * 50 mA per channel * Other features * USB powered device * 4 user LEDs /*{{ :reference:test-and-measurement:OpenLogger:OpenLogger_hardware_block_diagram.png?600 |OpenLogger Hardware Block Diagram (Click to enlarge)}}*/ ===== OpenLogger Pinout ===== {{ reference:test-and-measurement:openlogger:openlogger-mz-pinout.png?400 |OpenLogger Pinout Diagram}} /* ^ OpenLogger J1 Header Pinout ^^^^^^ ^ Top Row ^^^ Bottom Row ^^^ | 1 | DIO3 | Digital IO 3 | 2 | DIO7 | Digital IO 7 | | 3 | DIO2 | Digital IO 2 | 4 | DIO6 | Digital IO 6 | | 5 | DIO1 | Digital IO 1 | 6 | DIO5 | Digital IO 5 | | 7 | DIO0 | Digital IO 0 | 8 | DIO4 | Digital IO 4 | | 9 | DC2 | DC Out 2 | 10 | GND | Digital Ground | | 11 | DC1 | DC Out 1 | 12 | GND | Digital Ground | | 13 | AWG | Function Generator Output | 14 | GND | Digital Ground | | 15 | Tin | Reserved | 16 | Tout | Reserved | | 17 | RST | Button Reset | 18 | PROG | Button Program | | 19 | 5V | 5V Supply | 20 | GND | Digital Ground | | 21 | AI8 | Analog Input 8 | 22 | AGND8 | Analog Ground | | 23 | AI7 | Analog Input 7 | 24 | AGND7 | Analog Ground | | 25 | AI6 | Analog Input 6 | 26 | AGND6 | Analog Ground | | 27 | AI5 | Analog Input 5 | 28 | AGND5 | Analog Ground | | 29 | AI4 | Analog Input 4 | 30 | AGND4 | Analog Ground | | 31 | AI3 | Analog Input 3 | 32 | AGND3 | Analog Ground | | 33 | AI2 | Analog Input 2 | 34 | AGND2 | Analog Ground | | 35 | AI1 | Analog Input 1 | 36 | AGND1 | Analog Ground | */ ^ OpenLogger J1 Header Pinout ^^^^^^ ^ Top Row ^^^ Bottom Row ^^^ ^ Pinout# ^ Pin Name ^ Pin Description ^ Pinout# ^ Pin Name ^ Pin Description ^ | **1+** | AI1 | Analog Input 1 | **⇓** | AGND1 | Analog Ground | | **2+** | AI2 | Analog Input 2 | **⇓** | AGND2 | Analog Ground | | **3+** | AI3 | Analog Input 3 | **⇓** | AGND3 | Analog Ground | | **4+** | AI4 | Analog Input 4 | **⇓** | AGND4 | Analog Ground | | **5+** | AI5 | Analog Input 5 | **⇓** | AGND5 | Analog Ground | | **6+** | AI6 | Analog Input 6 | **⇓** | AGND6 | Analog Ground | | **7+** | AI7 | Analog Input 7 | **⇓** | AGND7 | Analog Ground | | **8+** | AI8 | Analog Input 8 | **⇓** | AGND8 | Analog Ground | | **5V** | 5V | 5V Supply | **↓** | GND | Digital Ground | | **R** | RST | Button Reset | **P** | PROG | Button Program | | **TI** | Tin | Reserved | **TO** | Tout | Reserved | | **W1** | AWG | Function Generator Output | **↓** | GND | Digital Ground | | **V1** | DC1 | DC Out 1 | **↓** | GND | Digital Ground | | **V2** | DC2 | DC Out 2 | **↓** | GND | Digital Ground | | **D0** | DIO0 | Digital IO 0 | **D4** | DIO4 | Digital IO 4 | | **D1** | DIO1 | Digital IO 1 | **D5** | DIO5 | Digital IO 5 | | **D2** | DIO2 | Digital IO 2 | **D6** | DIO6 | Digital IO 6 | | **D3** | DIO3 | Digital IO 3 | **D7** | DIO7 | Digital IO 7 | ===== Walk Around the Board ===== {{ reference:test-and-measurement:openlogger:openlogger-walk-around.jpg?700 |Walk Around the OpenLogger (click to enlarge)}} ===== Software Support ===== The [[reference:software:digilent-agent:start:|Digilent Agent]] and [[reference:software:waveforms-live:start:|WaveForms Live]] are used to configure and communicate with the OpenLogger, as well as for viewing captured data. More information can be found on their respective Resource Centers, linked above, as well as the [[:reference:test-and-measurement:openlogger:start:|OpenLogger Resource Center]]. ===Important!=== The OpenLogger can only be used with Windows operating systems. ===== Analog Inputs ===== Analog inputs provide ways to measure real analog data from external systems. OpenLogger has 8 single-ended analog inputs with their own recommended ground pin. Each input is designed to accept a voltage range of -10 V to +10 V (with protection up to ±30 V) and has 12 bits of resolution and a bandwidth of 50 kHz. OpenLogger can then log all data onto the local SD card at 500 kS/s, stream and/or log data over USB at 500 kS/s, or stream and/or log data over WiFi at 10 kS/S. The analog inputs has the following features: * 8 Channels * 12 bits of resolution per channel * 500 kS/s aggregate input * 50 kHz bandwidth at -3 dB /*each with their own analog gain to step down the input voltage and an op amp to rescale the input range from 0V to 3V. With a front end gain of 0.1392 and an analog input range of -10V to +10V, the embedded 16-bit Analog-to-Digital Converter (a TI ADS8332) provides a resolution of 329uV per LSB. */ /*The oscilloscope has the following features: * 8 Channels * 16 bits of resolution per channel * 400 kS/s per channel * 50 kHz bandwidth at -3 dB * Input impedance of 1 MΩ * Input voltage range of ±10 V with protection up to ±30 V * Maximum Buffer Size of 32640 samples per channel * Reduced from a maximum size of 32766 samples to account for ADC warm-up and pre-trigger data, various delay timer overrun sources, and a 4 byte reduction to prevent large DMA stalls when the maximum destination block size is used. */ Information on how to use the OpenLogger's Analog Inputs can be found in the OpenLogger's [[:learn:instrumentation:tutorials:openlogger:datalogger|Data Logger]] tutorial. {{ reference:test-and-measurement:openlogger:logging_in_process.png?500 |Logging in action}} ====== Function Generator ===== The OpenLogger has a single channel 2 MS/s, 10-bit function generator. An R2R resistor ladder with 1% resistors is used in place of a DAC. /* Due to the nature of resistor ladders, it is possible to have a missing code for steps larger than 3 mV or encounter propagation delays, most notably when switching between the values of 0x1FF and 0x200. The channel uses 10 IO pins on the PIC32MZ to generate the output through the resistor ladder and a DMA channel that is shared with the Logic Analyzer at the highest priority level to transfer data and a PWM output to control the offset voltage level. */ The function generator supports: * Sine, triangle, sawtooth, square and DC outputs * 10-bit resolution * 1 Hz to 200 kHz frequency * 3 V pk2pk output with ±1.5 V offset * 20 mA output current Information on how to use the OpenLogger's Function Generator can be found in the OpenLogger's [[:learn:instrumentation:tutorials:openlogger:wavegen|Function Generator]] tutorial. {{ reference:test-and-measurement:openlogger:wavegen_in_progress_1.png?500 |Waveform Generator in action}} ===== Digital I/O ===== Digital I/O provide generic inputs and outputs to detect and provide ways to detect and provide high and low logic states. The OpenLogger has 8 user IO pins that are available for general use. /*A DMA channel shared with the AWG at the highest priority level is used to transfer data received by the PIC32MZ.*/ Information on how to use the OpenLogger's Digital I/O can be found in the OpenLogger's [[:learn:instrumentation:tutorials:openlogger:gpio-logic-analyzer|Digital I/O]] tutorial. {{ reference:test-and-measurement:openlogger:digitalio_outputssethighandlow.png?500 |Set outputs to be high or low}} /*{{ :reference:test-and-measurement:OpenLogger:io_pins.png?600 |User IO Pins}}*/ ===== DC Power Supplies ===== OpenLogger has two DC outputs that are driven by their own PWM output with a single PWM line for the DC offset. A gain circuit is implmented on the OpenLogger to provide a voltage range of -4 V to 4 V for each channel. A feedback circuit is also present to allow for calibration of the DC output. /*{{ :reference:test-and-measurement:OpenLogger:dc_output_main.png?800 |DC output}} {{ :reference:test-and-measurement:OpenLogger:dc_output_feedback.png?600 |DC output feedback}} */ * 2 channels * ±4 V * 50 mA per channel Information on how to use the OpenLogger's Power Supplies can be found in the OpenLogger's [[:learn:instrumentation:tutorials:openlogger:power-supply|Power Supplies]] tutorial. {{ reference:test-and-measurement:openlogger:dc_power_supply_in_operation.png?500 |DC Power Supply}} /*===== Communication with the host ===== A block diagram of how the OpenLogger communicates with the host is provided below: {{ :reference:test-and-measurement:OpenLogger:user_interface_communications.png?600 |User Interface communications setup}} ===== UART Interface ===== OpenLogger uses an FTdI FT232RQ USB/Serial converter to handle the flow control between a host computer and a connected OpenLogger. The host computer will need a USB 2.0 High Speed (or better) port to allow the OpenLogger to run at 1.25 MBaud (139 kB/s) and to negotiate 500 mA on the USB bus. Users may interact with the OpenLogger via a terminal in either Menu Mode or JSON Mode. A pair of DMA channels at the lowest priority are dedicated to the UART. If any other DMA channels stall out the UART DMA, all communication with the host will cease. The OpenLogger uses an FTDI FT232RQ USB/Serial converter to offload the USB stack to the FTDI chip. It requires USB 2.0 High Speed or better and runs at 1.25 MBaud (139 kB/s) and negotiates 500 mA on the USB bus. Users may interact with it via a terminal in either Menu Mode or JSON Mode. A single DMA channel is dedicated to the UART, but is set at the lowest priority because the serial communication runs much slower than all of the other peripherals so it is not difficult to find time to keep up with the UART. However, if any of the other DMA channels are saturated and stall out the UART DMA, all communication with the ht will stop. ===== WiFi ===== The OpenLogger uses a ATWINC1500 WiFi chip to enable wireless communication with a browser based UI, [[http://www.waveformslive.com|WaveFormsLive]] (WFL). The OpenLogger itself implements a simple HTTP Server that stores static web content on a μSD card and supports dynamic content implemented in the code through the Digilent deIP™ Network Stack. More information about WFL and the [[/reference/software/digilent-agent/start|Digilent Agent]] can be found on the [[reference:test-and-measurement:OpenLogger:start|OpenLogger Resource Center]]. ===== Timers ===== Other documentation suggests that there are 2 timers for the ADC, 1 for DC/OC, 1 for offset DC, 2 for AWG/LA, 1 for trigger, 1 for hardware protocol, and 1 spare. Horray. Learned that timers are not PWM. PWM is done via output compare modules. So good on timers. 8 out of 9 timers available on the PIC32MZ are utilized for the OpenLogger to trigger the ADCs, DMA transfers, PWM outputs, and trigger delays. Two timers are dedicated to the ADC channels, two are dedicated to the DC outputs, one for the DC offset, one for the function generator and logic analyzer, one for an external trigger, and one for the hardware protocol. Both this timers section and the Triggers section claim that they control the DMA transfers...awkward. ===== Triggers ===== The PIC32MZ triggers are used to initiate and control all of the DMA transfers in the OpenLogger. When a trigger is enabled, a data acquisition will run continuously before the trigger event because it is not known when the trigger event will occur. Data acquisition will also continue to run until all post trigger data is collected. Due to data acquisition size limitations, it is not possible to measure a point of interest that exists too far in advance prior to the trigger event. The reverse for a point of interest too far after a trigger event is also true. ===== DMA ===== 8 out of 8 DMA channels available on the PIC32MZ are used on the OpenLogger. Two channels are dedicated to UART, a pair of DMA channels are assigned to each interleaved ADC channel for a total of four channels, one channel is shared between the function generator and the logic analyzer and one dedicated to hardware protocol communication. All DMA channels can be triggered on any interrupt event and do not require the use of an ISR. DMA is used to transfer data without utilizing the CPU by working in parallel with the CPU and has to ability to access peripherals and non-cached memory at much greater speeds. DMA cell transfers are serialized so care is taken in the OpenLogger firmware to ensure that multiple channels are not triggered above 10 MT/s to prevent a high priority channel from stalling all other DMA channels. DMA is used to transfer data without utilizing the CPU and works in parallel with the CPU and has the ability to access peripherals and non-cached memory on the CPU. However, all cell transfer for all DMA channels are serialized, so care is taken to ensure that the maximum cell triggering is below 15 MT/s for a single channel and around 10 MT/s when multiple DMA channels are used to ensure that a high priority channel is not stalling all of the other channels waiting to transfer their data. ===== PWM ===== 9 PWM channels of the PIC32MZ are implemented on the OpenLogger. Two are used in the interleaving of the ADC channels, three are used for offsets for the AWG and both analog input channels, two are used for the DC outputs, and the remaining two used as offsets for the DC outputs. The PWM outputs have 330 unique values ranging from 0 V to 3.3 V, with a step size of 10 mV. The internal clock runs at 100 MHz, providing a PWM frequency of 303 kHz. All of the analog designs on the OpenLogger are based on PWM values from 50 to 300 to allow some headroom for calibration. */ ===== Troubleshooting ===== ====LED Indicators==== The LEDs on the OpenLogger are used to indicate the current status of the OpenLogger hardware as follows: * Orange On - Device is booting and not ready to use. * Green Flashing - Device is booted and ready to use, but not logging. * Green Solid - Device is logging to the RAM buffer and streaming is currently available. * Green and Orange Solid - Device is both logging and streaming. * Green Solid and Orange Flashing - Device is streaming to the RAM buffer, but logging to the SD card or through Wifi has stopped * For the SD card, this usually indicates there is no more space on the SD card * Red Solid - One of the internal buffers was overrun * Filling the SD card does not cause an overrun condition * Red Flashing - Warning that the device is falling behind with keeping the buffers cleared * Blue Solid - Reserved for WiFi (not yet implemented) * Red blinking and Orange Solid - Device firmware updating * All user LEDs Solid - An error has occurred. Reboot the OpenLogger and report the error on the [[https://forum.digilent.com/forum/30-waveforms-live-openscope-mz-and-openlogger/|Digilent Forum]]. /*When connected to a Wifi network the 3 user LEDs display the last octet of the OpenLogger's IP address by blinking the number of times corresponding to that digit of the last octet in decimal. For example an OpenLogger with an IP address ending in '123' would blink LD1 once, LD2 twice and LD3 three times. {{ :reference:test-and-measurement:OpenLogger:OpenLogger-ip-address-indicator.png?nolink&400 |}}*/ {{tag>openlogger doc}}