Nwazet Data Acquisition Module
Product Type: Modules
Our Data Acquisition module (DAQ for short) is designed for Netduino Go! users looking for a simple, cost-effective platform for integrating analog and digital I/Os, off-the-shelf I2C sensors, time tracking, SDHC storage (up to 16GB) and serial communications to their projects.
Nwazet DAQ Module vs. Shield Base | Buyer's Guide
Since the release of the DAQ module, we have received multiple requests to "compare and contrast" the DAQ's features with the Shield Base module produced by Secret Labs. You can find the comparison sheet here and we hope that it clarifies any confusion that may have existed between the two products.
Background
When we set out to design the DAQ module 5 months ago, we put a great deal of thought into the real-world scenarios shared by our customers when Netduino Go! launched and how many wanted to apply the power of the .Net Micro Framework in the context of rapid system prototyping, light industrial control systems, home automation, hydroponic growing systems, security systems, UAVs, robots and of course, Internet-connected devices.
The first design choice we made was to choose an extremely robust spring-loaded wire connection system, providing power, data and ground on every port where they're needed. On ports that are 5v and 3.3v tolerant, both power types are available. Because each wire is held securely in its place with strong springs that can only be released by applying pressure with a very small screwdriver, communications are more reliable and power to sensors and analog devices is more stable than in conventional systems using female pin headers. In addition, our spring-loaded wiring system enabled us to design a smaller and lighter board than would have been possible with screw connectors.
Our second design choice was to enable our customers to leverage the large array of existing I2C-compliant sensors on the market today without having to wait long development cycles for similar Go! modules to be brought to market. To this end, we have partnered with Adafruit to provide a variety of useful I2C sensors that work 'out-of-the-box' with our DAQ module in order to help you get started quickly with your designs. We are also committed to developing a comprehensive driver library for popular sensors from Adafruit and other vendors over time.
Our third design choice was to place user-controllable status LEDs on each I/O port of the DAQ module, allowing for a simple and effective method of providing user feedback from an application at no additional cost and without consuming the DAQ's digital I/Os for that purpose alone. We also embedded extensive sub-system diagnostics into the DAQ, available on-demand, in plain English through the serial port to help with troubleshooting issues in the field as well as easing the development of custom application drivers.
Our final design choice was to provide a complete, easy to hack system, with SDHC storage, a real-time clock, optional external power, and above all, capable of being used as a stand-alone 48Mhz ARM-Cortex M0 micro-controller programmable in C/C++ using a standard 0.1" JTAG/SWD pin header. In fact, an STM32F051 Discovery board, costing less than $10, was used for its embedded STLink/V2 interface throughout the entire development of the DAQ module firmware.
We believe that you'll find this module extremely useful in unlocking the full potential of Netduino Go! and building amazing applications right now. We also have a feature road map for the DAQ module and you can expect to see more smart functions, performance improvements and your very own feedback embedded in upcoming versions of the firmware. Last but not least, the DAQ module will be ready to leverage Go!Bus protocol advancements when the time comes.
C# Software Library
- GPIOs (inputs, outputs, pull-ups, pull-downs, open-drain, push-pull, PWM)
- PWM timer frequency configuration
- Analog input sampling with automatic time stamp function
- Interrupt (rising, falling, both), interrupt count-tracking and roll-over count tracking
- FAT File system operations
- I2C communications
- USART communications (TTL)
- Real Time clock (date, time, milliseconds, battery-backed)
- Ability to read / write multiple or a single GPIO with one call
- Status LED controller
- System and user configuration registers (battery-backed)
Driver library supporting Adafruit and other I2C sensors
- TSL2561 digital luminosity / lux / light sensor
- BMP085 Barometric Pressure/Temperature/Altitude sensor
- INA219 High Side DC Current Sensor Breakout
- Honeywell HIH-6130 temperature and humidity sensor
Documentation
- Wire connection map
- A tiny flat-head screwdriver or similar tool is required to release wires from their spring-loaded cage.
- See BOM for complete specifications.
- Release notes
- A battery is required in the battery-holder for the DAQ module to operate properly
- If the DAQ module is in storage and is not going to be used for an extended period of time, remove the Lithium battery (unless you need to keep track of time) and remove the SD card for the reader.
- The USART port is configured by default at 115,200 bps.
- The USART must be explicitly configured by the application before serial data can be read.
- Digital GPIO D4 is 3v tolerant only: it is internally connected to the ADC / DAC.
- Digital GPIO D4 cannot be used in "Input Interrupt" mode.
- Sensirion sensors are not fully I2C compliant and aren't supported in the initial release of the DAQ module firmware.
- First-time boot procedure (and required when replacing the real-time clock battery):
- Insert the 3v Lithium battery into the battery holder, positive side up
- Connect the DAQ to a Netduino Go! socket that is powered
- Wait for the white LED on the DAQ to turn ON and wait a second
- Power the Netduino Go! board OFF, then back ON
- Your DAQ module is now ready to use
Tutorials and Code snippets
- Boot
- Time
- Analog Inputs
- Digital Outputs
- Digital Inputs
- PWM Digital Outputs
- System and User Storage Registers
- Interrupt Lines
- Serial Communications
- I2C Communications
- File System
Cables
We offer cables of various lengths: be sure to select the one that best fits your project and mounting requirements.
Mounting hardware
Our medium-size plate is ready to accommodate the DAQ module
SD Card Storage
We carry a 4GB SDHC card which works nicely with the DAQ module.
Data Acquisition Module Specifications
- 1.0 firmware release (September 7, 2012)
- Go!Bus 1.0 compliant interface
- Dimensions: 100mm x 80mm x 10.5mm, and 90mm x 70mm hole to hole
- 16 Mhz Go!Bus SPI communication
- 18 spring-loaded wire connectors
- Prevent unintentional disconnections and faulty contacts
- Wire release requires using a tiny screw driver
- 8 Analog Input connectors
- 12-bit precision
- 3.3v-tolerant only
- Each connector provides a 3.3v power rail, data, and ground connections
- Internal voltage reference monitor
- Internal battery voltage monitor
- 8 Digital I/O connectors, configurable as any combination of:
- 8 digital inputs
- 8 digital outputs
- 8 PWM outputs
- 7 Interrupt-driven inputs (D0, D1, D2, D3, D5, D6, D7)
- 7 5v tolerant connectors (D0, D1, D2, D3, D5, D6, D7)
- 1 3.3v tolerant-only connector (D4)
- Each connector provides a 5v power rail, a 3.3v power rail, data and ground connections
- I2C port
- Connect multiple I2C sensors on the same bus
- 10, 100 and 400 kHz support
- Provide SCL, SDA, GND connections
- USART port
- RTS / CTS Hardware flow control support
- Baud rate from 110 baud up to 921600 baud
- Configured for 115200 baud by default
- Provide RX, TX, RTS, CTS, GND connections
- SD card reader
- SDHC cards supported up to 16 GB
- Embedded FAT12/16/32 file system
- Short file name (8.3) support only
- SD card sold separately
- Real Time clock
- 32,768 kHz external time-keeping crystal
- Year, month, day, hour, minute second, millisecond
- 4 user-defined 32-bit configuration registers
- Battery backed
- A 3v Lithium battery is included with the DAQ
- 19 red, user-controllable status LEDs
- 8 analog input status LEDs
- 8 GPIO status LEDs
- 1 SD card reader status LED
- 1 USART status LED
- 1 I2C status LED
- Built-in system diagnostics
- User-configurable output to serial port
- Optional 0.1" power pin headers (5v, 3.3v, GND)
- Optional 0.1" JTAG/SWD pin headers
- MCU
- ARM Cortex-M0 (STM32F051R8T6) clocked @ 48 Mhz
- 16 Mhz external crystal for precise PWM, USART, I2C timing
- OSHW design
- OSS C# drivers
- OSS C firmware (built with IAR Systems Workbench)














17 Comments
David R Grindel said
I see you have a barometric pressure sensor. Do you know of any water pressure sensors good to 70 psi ?
Actually need two so I can find the differential pressure. Even better would be a differential pressure sensor !!! Of course digital (I2C) would be best.
Price is important < $20 each.
Thanks much,
Dave
fabien said
Hi David.
There are many types of water pressure sensors and I would need more detailed specifications about your application before making a recommendation.
Cheers,
-Fabien.
Mudman171 said
Is the LCD excluded in this kit?
fabien said
Hi MudMan,
What you see depicted is not a kit and the Touch Display module is currently sold separately. You can find the various parts used (plates, standoffs, cables, display, Netduino Go! board, etc.) to put this together on our site though.
Cheers,
-Fabien.
Giuliano said
Hi Fabien,
How is the internal clock set up the very first time? Is is thru code using a NTP server?
fabien said
Hi Giuliano,
Check out the 'Time' code snippet in the Documentation section above to see how to setup the time for the first time. Setting time using NTP is also possible of course but not required.
Cheers,
-Fabien.
David R Grindel said
Fabien,
It's a green application, I guess. I want to measure the differential pressure across my whole house water filter. When the pressure difference gets to some percentage of the absolute input pressure (60psi) the filter should be changed. This way I only change the filter when it used up. Instead of every 3 months as suggested. There are to many variables to assume a 3 month change ie input water quality, water usage. I've found some sensors but they are to expensive. I think the cheapest was $50.
fabien said
Hi David,
We love 'Green' applications :) Given the specifications that you provided, I was able to quickly dig up a sensor that seems to fit the bill: http://www.allsensors.com/datasheets/DS-0094_Rev_A.pdf which retails for $30 on DigiKey. I hope this helps.
Cheers,
-Fabien.
Charles Arbuthnot said
Fabien,
I have a question on the DAQ. I ran the Boot, no problem. Ran time noproblem the first time except wrong date and time. Tried to set to DateTime.Now and got Time: 06/01/2011 00:00:16. Tried to run a second time and kept getting Error A3000000. Finally got it to run again but only by unplugging the Go, Hit deploy, wait about 5 seconds then plug the Go back in.
I never got the DAQ to set to current time on the computer. Used daq.SetDateTime(new DateTime(2012, 10, 07, 16, 38, 00));
Also is there an easy method for updating the firmware for the display module? I have 2 that I have not updated yet for use with Nutshell.
Thanks,
Chuck
fabien said
Hi Charles,
By default, DateTime.Now never returns the correct time (a Netduino Go does not have an internal RTC) unless it is initialized explicitly using Microsoft.SPOT.Hardware.Utility.SetLocalTime(currentTime); So, you need to set the date and time on the DAQ once correctly using the method shown in the Time code snippet. Then, at any time, read the current time from the DAQ and set the local time with SetLocalTime(). Does this make sense?
Cheers,
-Fabien.
Tom said
Hallo,
what is the name of this connector? I would like to use it in my own projects.
fabien said
Hi Tom,
Pleaser take a look at the bill of materials: https://bitbucket.org/fabienroyer/nwazet.go/src/c11521e6885b85a86c7c9460e8294f6cd721166a/Eagle/DaqModule?at=default
All connectors used on the board are listed there.
Cheers,
-Fabien.
Bill said
I have both the daq and touchscreen working well by looking at you example code. I can read and write from the sd card on the daq fine, but am having difficulty determining how I would display an image from the SD card on the Daq to the touchscreen. I can't seem to get the canvas.DrawBitMapImage to recognize the filesystem on the daq to pass it a filename. Is the only way to write from the daq to the display by sending a buffer through canvas.DrawBitMapImageRaw?
Thank for any guidance,
Bill
fabien said
Hi Tom,
Please check the board's bill of materials for the exact part #.
Cheers,
-Fabien.
Jack said
Fabien, I'm a novice at this. I want to use your board for prototyping a Go Module.
I think that "all" I need to do is:
1) get it working on the DAQ using your firmware, "my" hardware and "my" C# code.
2) using the DAQ schematic, delete all of the unused DAQ connectors, generate a new board layout (etc.) add my hardware components.
3) Get the circuit board manufactured, solder the parts
4) Plug it in, flash your firmware and, hey presto, my custom board...
Extra bit: modify the firmware (somehow) including generating a new GUID.
Is this right or have I missed something major?
Jack
fabien said
Hi Jack,
Yup, sounds about right... I'm intrigued by what your custom board does now and I'd love to see what you're cooking :)
Good luck.
Cheers,
-Fabien.
fabien said
Hi Bill,
Sorry for the delay: I had missed your comment previously. The DAQ implements its own file system that has nothing to do with the .Net MF file system. To display a .bmp image stored on the SD card, you will need to read it in 'chunks' and send it over to the display. You should take a look at the code that uses the .Net MF file system to display an image to see how to do it. It won't be difficult to make a new function to work with the DAQ based on that.
I hope this helps.
Cheers,
-Fabien.