Outstanding Support for
Science and Technology

Services


Products


About


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.

Contact Us




LabVIEW™ Programming


LabVIEW Programming

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.

Software Development


Software Development

Field R&D Services, LLC has developed and contributed to numerous software projects written in a variety of programming languages over the years. We have continued and past experience with C, Lua, Java, JavaScript, Python, Rust, and many more.

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.

Embedded Systems Design


Embedded Systems Design

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.

Ace Your In-Cluster Element Organization


Alphabetize Cluster Elements

Alphabetize Cluster Elements (ACE) is a free software add-on and toolkit for LabVIEW with a QDKS and an SMP that alphabetize elements in a cluster. This is especially useful if the cluster, either a constant or a control, is arranged horizontally or vertically in either the block diagram or front panel. Alphabetizing the elements provides a quick and easy way to organize elements in a cluster and increases project consistency. This even works for the private member data clusters of LabVIEW classes.

A LabVIEW API is also provided to programmatically use and extend the add-on. The toolkit is ideal for incorporating alphabetizing clusters within an automated build system or other QDKSs and SMPs.

Eulogy


Eulogy

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


LabPack

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.

Add some facial hair to your LabVIEW projects


Labstache

Labstache is a free and open source toolkit for LabVIEW™ software that enables rendering of logic-free Mustache templates. Logic-less Mustache templates are a simple design that uses paired curly brackets ("{{" and "}}") to delimit variables, sections, sub-templates (also known as "partials"), comments, and more. Mustache templates are great for generating text-based output where only a relatively small portion of content dynamically changes relative to the static content. Mustache templates are especially suited for files that use a markup language, such as HTML, LaTeX, RTF, and even INI files where a lot of static scaffolding is included for presentation but the content is dynamic.

The toolkit supports all of the Mustache tags, including Escaped and Unescaped Variables, Sections, Inverted Sections, Partials, Comments, and Set Delimiter, but each component of the 100% LabVIEW-based compiler, i.e. the lexer, loader, parser, reader, render, and writer, are implemented in a modular, plug-in style architecture using LabVIEW classes to easily customize and extend the template rendering process and/or add new template-related features.

Logger


Logger

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.