Field R&D Services is a scientific software and hardware engineering firm with 12+ years of experience in R&D, scientific instrumentation design and operation, software development, electronics, product design, and data analysis.
The business was created to enable and support science, technology, and research. We come from a background of designing and implementing cutting-edge prototypes and instruments. We understand and thrive in developing solutions in "resource constrained" environments.
Software and hardware development are increasingly viewed as infrastructure or short-term necessities in modern scientific research, industrial systems deployment, and commercial product design. Field R&D Services was established to help individuals and teams in small and large organizations avoid wasting valuable resources developing "infrastructure" and instead focus on making scientific discoveries, delivering cost-saving automations, and bring new products to market.
We have over 12 years of certified experience with the LabVIEW™ Development Environment and associated hardware products from National Instruments, Inc. (NI). We help clients and projects to develop new LabVIEW™-based software solutions from the ground up, update existing codebases to incorporate new features or work flows, and refactor old software for integration with modern hardware.
Basically, we provide lightning-fast development and support wherever extensive LabVIEW™ development is needed. Regardless of the project or goals, all LabVIEW™-based software solutions are developed with a clean, fully documented style using robust design patterns for exceptional readability, flexibility, and maintainability. Development can occur on-site or remotely depending on the requirements and needs of the client and project.
We have hands-on experience developing, integrating, and deploying a variety of LabVIEW™-based software and NI hardware systems. Past projects and experience include not only the core LabVIEW™ graphical programming language but also the following add-ons, toolkits, and hardware: Real-Time Module, FPGA Module, Vision Development Module (VDM), SoftMotion, CompactRIO™, Compact Vision System (CVS), CompactDAQ™, PXI, and more. We can help clients at any stage of development from the very beginning with objective consultation and system specification writing to the very end with expertise on deployment strategies and distribution.
We continue to be heavily involved in the greater software development community. This involvement and continued commitment to the field of computer programming and software development allows us to quickly assimilate into established teams and readily adopt new development environments and programming paradigms.
From OOP to TDD, we can help almost any client in need of computer programming expertise. This service is ideal for an individual needing a custom script to batch process files and enhance productivity, a small business looking to implement a modern web application, an older project looking to refactor the codebase for modern systems, an established project in need of documentation and help files, or a large project needing a temporary increase in manpower to reach milestones and generate a timely deliverable. In other words, we offer general contract computer programming and software development support.
In addition to software experience and support, Field R&D Services provides assistance in the design and implementation of custom hardware. Specifically, we can help create prototype circuits given various application requirements and constraints, such as physical dimensions, operating voltage, power, interfaces, etc., and layout PCBs based on circuit diagrams.
We can design and program custom embedded solutions for rapid prototyping and development of new innovations, products, and instruments. Our process uses a combination of simple, yet powerful design principles with readily available, laboratory-grade tools. Like all of our services, solutions are delivered with full documentation and extended support.
You just inherited a large project that has been under continuous development for years, and now you are tasked with improving performance and adding functionality while maintaining compatibility. The Eulogy LabVIEW add-on and toolkit makes navigating, learning, debugging, and refactoring a large project fun and easy. Use the Quick Drop Keyboard Shortcuts, the Shortcut Menu Plugin, and the custom Bookmark Manager to make excavation, necromancy, and fighting zombie hordes a part of your large, inherited codebase workflow.
Eulogy introduces the concept of "graves" for tagging, modifying, and removing legacy code. Each grave is a Diagram Disable Structure with a tombstone (bookmark), a disabled Corpse frame (legacy code), and an enabled Spirit frame (refactored code). A grave provides a container for changing sections of code without changing its behavior, i.e. refactoring. This simple concept combines native LabVIEW features with a set of conventions to allow modification without loss in functionality.
A LabVIEW API is also provided to programmatically use and extend the add-on. The toolkit is ideal for incorporating Eulogy-related tasks into automated build systems.
LabPack reads and writes MessagePack (msgpack) formatted binary data. The msgpack format is designed for efficient, low-level encoding and decoding of messages, specifically for sending and receiving data across network streams. This code library is a valuable tool for creating message architectures when JSON, XML, or similar custom text-based message formats would consume too much network bandwidth, system memory, and/or CPU cycles.
Since MessagePack is an open format designed for easy, low-level (de)serialization, it can be used in Internet of Things (IoT) applications as a messaging format between small, distributed nodes, like a sensor, and larger, more performant hubs, like a CompactRIO device. The LabPack library enables LabVIEW™-based embedded systems to interface with other MessagePack-enabled nodes in IoT applications.
Logger is a small logging utility modeled after the Log4j and similar libraries but for LabVIEW™. You can use this add-on to create a robust, full-feature application logging and error-handling system for any LabVIEW™ application. Logging statements are written as CSV lines to a log file. Log files are managed and organized by calendar date and file name to reduce clutter and on-disk storage space. Logging can be configured to automatically close and create a new log file based on file size. Advanced error-handling capabilities are provided by combining level-based application logging with the General Error Handler VI of LabVIEW™ to easily catch, log, clear, and display errors based on verbosity, severity, and configuration.