Click logo icon to hide/show contact information.
Click Here to Hide/Show contact information.
Contact: Keith Beidelman
Beidelman Software
10530 McPherson
Indianapolis, IN 46280
Office: (317) 608-5051
Cell: (317) 727-3361
  • Industrial Automation
  • Web Based MMI
  • C/C++/C# Programming
  • VB Programming
  • Java Programming
  • Mint Programming
  • Assembly Programming
  • Database Design
  • Internet Connectivity
  • Embedded Systems
  • Micro-Controller Programming
  • Linux
  • Microsoft Windows
  • Data Acquisition
  •     Beidelman Software is a software design and consulting firm. We work both with the industrial automation market, as well as with board level product industry. Through the years, we have worked closely with hardware engineers, developing custom software for controlling their systems. In order for a system to function properly, the hardware and the software must work together flawlessly.


        For a list of some clients and a brief description of project history, please visit the Online Resume.
    To access password protected client files, click here.

    Design Philosophy

        If there is a problem with a system, it does no good if the hardware group blames it on the software, and the software group blames it on the hardware. Both groups must work together to find the problem, and come up with a solution. In order to track down a problem, our software engineers feel comfortable using hardware tools such as scopes and logic analyzers, along with software debuggers. If there is a problem, then there must be a scientific way to track down the source of the problem. Using these scientific techniques is better than speculation, because it does not lead you down the wrong path in diagnosing a problem.

        It is usually less expensive for a given task to be performed in software rather than hardware. However, there are situations where a given task should be accomplished with hardware. This is usually a situation where a task needs more responsiveness than software can provide. For example, if you are trying to time events with nanoseconds of accuracy, then you will need hardware assistance to perform the task. The solution might be as simple as using a hardware timer already built into a microprocessor, thus requiring no additional physical hardware. However, if there is no hardware trigger or gate for the event, then it is not possible to effectively use the hardware timer resources. If you use a hardware timer with a software trigger, then the resulting accuracy will be no better than software response jitter time to the trigger.

        When measuring a moving product using a photo eye, the accuracy can never be better than the amount of distance the product travels during the response time of the photo eye.

        When using a camera system on a moving object, the frame rate or the use of strobe lights can be critical to obtain the desired accuracy. It is also important to consider the image resolution, and spacial distortion. Inconsistent lighting can lead to inconsistent pattern recognition. There are two solutions to this problem. Either control the lighting, or make the algorithms resistant to changes in the lighting conditions. Proper choice of algorithms is important, if the resulting system it to be robust.

        The point is that it is important for the hardware engineers to work closely with the software engineers at all stages of a project. The hardware and software resources of a device need to be properly allocated and utilized to lead to a cost effective, robust solution.


        Even though Beidelman Software continues to be primarily a software development company, we have developed several hardware products. These products were created because there was a need for them in some of the integrated solutions we developed, and there was no other device, which existed with these features.

    Description Picture

    32 Input Encoder Position Capturing Coprocessor

    This device is typically used for high speed measurement applications. There are 32 digital inputs, and a set of quadrature encoder inputs. Whenever the digial inputs change state, the current encoder position is saved in a queue along with the status of all the digital inputs. The queue is hardware managed, allowing for a quick response of the capture, accurately freezing the encoder position at the exact instant when the event occured.


    Quadrature Encoder Optical Isolator and Splitter

    This device splits an encoder signal 2 ways, giving 2 sets of encoder outputs from a single quadrature encoder. What sets this device apart from others, is that there are no electrical connections between the physical encoder and the two derived virtual encoders. Each of the 3 units can run off of a different power supply, if desired. The coupling is by high speed data grade opto-isolators.


    Dual Axis Quadrature Encoder Display Unit

    This is a simple device for displaying the raw encoder counts from a pair of quadrature encoders. It is great for diagnostic purposes.


    Machine-Control Computer Programming

         We build custom man-machine interfaces for industrial control applications in web browsers. Access to the user interface may be permitted at any machine on your LAN (or even any machine in the internet). Access production statistics, or change production parameters from your office without going out on the production floor.

        Programming languages include C, C++, C#, Java, VB, and Mint. We can store real time data in a Access compatible database. You can make database queries and reports from any PC on your LAN from a web browser.

        We also offer PLC Programming for PLCs, including Automation Direct.

    Embedded Systems Programming

        We offer services for embedded systems software development for custom board level products. Languages include C, C++, C#, VB, Java, and various assembly languages. We can write Linux device drivers. We can also write embedded web-server applications, for controlling your board-level product from a web browser.

    Free Software Downloads
    VLSM calculator - Windows Utility to calculate network IP addresses for Variable Length Subnet Masking


        Utility to calculate Network Address, Broadcast Address, First Host Address, and Last Host Address, given an IP address within the block, and a subnet mask width (in bits). This utility can be used to quickly calculate how to break a IP address block into smaller blocks (which use VLSM - Variable Length Subnet Masking).

        There are some keyboard shortcuts to make data entry more natural. "." advances to the next octet in the address, and "/" advances to the subnet mask width. Therefore, you can simply type "", rather than tabbing to individual fields. In addition, enter goes to the first octet in the address, 'c' copies the information to the clipboard, and 'x' exits the program.

        Click Here to download the small windows stand-alone .NET application..

    Software to Download Programs to Baldor Mint Controllers


    Click Here for details, and to get your Free download of this software.

    Other Links

    Customer Access to password protected files
    Free Linux Utilities
    Math Tutor for Addition and Subtraction
    Radio Shack PRO-2032 Scanner Modification Page
    Recursive C-Curve Generation Applet
    Utility Program to Load Mint-MT Controller
    Floating Point Ratio Generator
    Division Directed Graph

    Web Site is powered by Apache under Linux.
    Additional demos run under Microsoft Windows.
    Copyright © 2009 Keith Beidelman.   All rights reserved.