How to record the weight from an A&D scale or balance using A&D’s free RsWeight software

0. Don’t let the terminology confuse you

For the purpose of this article, “serial”, “RS-232” (with and without hyphen), “RS232C” and “COM” can be treated as synonyms. Therefore, a “serial port”, “RS-232C interface” and “COM port” are the same thing.

“Scale”, “balance” and “weighing instrument” are used interchangeably.

1. Connect your A&D scale or balance to your PC

In most cases, your A&D scale will be equipped with an RS-232 interface:

RS-232 interface on A&D FX-300i balance

You will need an RS-232 cable (serial cable) which is compatible with your scale and – if your PC does not have an RS-232 port – a converter from USB to RS-232 such as FTDI’s Chipi-X or US232R.

This converter will create a virtual COM port on your PC. A&D also offers a set consisting of a converter and a cable.

There are other kinds of converters such as RS-232 to Ethernet, though they are not covered in detail here. As long as they can create virtual COM ports, they can be used with RsWeight.

The configuration used is in this tutorial is shown below:

A&D FX-300i balance with RS-232 cable, USB to RS-232 converter and PC running RsWeight software

Not all scales require a converter to USB: The recently released Apollo GX-AE/A & GF-A balances have a USB port which can be configured to work in virtual COM port mode, so all you’ll need is a USB cable. A&D may have released further balances with this functionality by the time you read this article.

Many weighing instruments from A&D can be equipped with a “Quick USB” port. This type of port is recognized as a keyboard and not as a virtual COM port and is therefore not suitable for use with RsWeight (see A&D’s Communication Methods FAQ for further information).

If you know what you’re doing, you can also find USB to RS-232 converters that can be plugged directly into the RS-232 port of your scale (no separate serial cable required). We offer such a solution for A&D scales with a round DIN8 connector such as the HC-i counting scales or FG-KAL/KBM scales (currently only available in our German scales shop):

USB to RS-232 (DIN8) cable

2. Install the driver for the USB to RS-232 converter (or for your balance)

On Windows 10, driver installation will usually happen automatically when you plug in the converter (on your PC). If this is not the case, you can download the driver from the manufacturer’s website, e.g.:

For other converters, please check with your supplier.

3. Download and install RsWeight

RsWeight is available for free from A&D as part of the WinCT suite. Installation is straight forward and should not pose any challenges: Download the Zip file, unzip it, start setup.exe and follow the prompts on the screen.

4. Configure RsWeight

You’ll find RsWeight under the “A&D WinCT” group in the start menu. On Windows 10, you can also open the start menu and start typing “RsWeight”.

In the “RS-232C” menu, select the COM port to which your scale is connected on your system. By clicking on the combo box, you can see the full names (requires RsWeight 5.40 or later):

COM port selection in RsWeight

If you’re using a USB to RS-232 converter with FTDI’s chipset, it will show up as a “USB serial port” (as shown above). Converters made by other manufacturers may have slightly different names, but usually they contain the words “serial” and “port”.

The new Apollo GX-AE/A and GF-A balances will be shown as an “AND USB Port for Balance”.

If you’re in doubt, open the Windows Device Manager (under Windows 10, press Ctrl + X, then select Device Manager) and navigate to Ports (COM & LPT):
Ports in Windows Device Manager

You can then simply unplug the converter (or balance) from your PC and watch which device disappears (and hopefully reappears when you plug it in again). If you cannot find a suitable device, you must resolve this issue before continuing (most likely you don’t have the correct driver installed, see section 2 above).

All other interface parameters are already set to the default values required by (nearly) all A&D scales and balances:

  • Baud Rate: 2400
  • Parity: Even
  • Length: 7
  • Stop Bit: 1
  • Terminator: CR/LF

RsWeight baud rate is set to 2400

If you’ve changed these settings in the menu of your scale, you need to make exactly the same changes in RsWeight. If you didn’t modify the default settings of your scale, all you have to do in RsWeight at this stage is set the COM port.

5. Start data logging

Press Start in RsWeight, put an object on your balance, wait for the stability indicator to show up in the display and press the PRINT button. The weight will appear in RsWeight:

Weigh received in RsWeight

Note: If you do not want to manually press the PRINT button on your balance, you can either change its data transmission mode or instruct RsWeight to request the weight by checking the Repeat checkbox and setting an interval in seconds. Further information can be found in the manual of your balance and in the RsWeight Operation manual (PDF).

We do not recommend using “stream mode” with RsWeight as the software will eventually become too slow to record all values. You can see this in this screenshot where the balance was sending 20 values/s, but RsWeight slowed down to 4 values/s after a few minutes. If you want to continuously record rates of 10 weight values/s (or more) over several minutes, hours or even days, consider using our inexpensive Simple Data Logger software.

6. Export to CSV

In the Option menu, make sure that the Decimal Point is set correctly for your region (e.g. USA->Dot, Germany->Comma). Then, go to File / Save / Data Save and enter a file name and location:

Save recorded weight as CSV

You will be able to open this file in Excel (and other applications) and the data will be neatly arranged in columns (if not, then you probably picked the wrong decimal separator):

CSV file from RsWeigh opened in Excel

What if no weight is received from the scale?

This problem can be difficult to solve because there are many components involved in recording the weight from your scale:

  • The scale or balance,
  • the RS-232 cable,
  • the USB to RS-232 converter (if required),
  • and the RsWeight software.

If there’s something wrong with just one of these items, data transmission will fail. From our experience, the most common issues are:

    • Wrong COM port. The COM port number will be assigned by your PC, so you can’t just copy it from this article. Note that there may be other COM ports present on your system even if you’ve never connected a converter to your PC before. It is absolutely necessary that you choose the right port. RsWeight cannot do this for you, though it does make it easy by showing the full COM port name (since version 5.40).
    • No driver, wrong driver or outdated driver installed for your USB to RS-232 converter or balance. This a particularly common problem on Windows 7. Confirm that the manufacturer’s name and not “Microsoft” is shown under Driver Provider when you open the Device Manager, right-click on the converter, select Properties and switch to the Driver tab:
      USB Serial port driver propertiesIf you suspect that you don’t have the correct driver installed, download it from the manufacturer (see section 2).
    • The scale has not yet stabilized. If you press the PRINT button and the weight is not stable, no data will be transmitted. Depending on the model of your scale, you may be able to change this setting (please consult the manual). Otherwise, just wait until the stability symbol appears.
    • Balance settings have been modified. If the settings of your balance no longer correspond to their default values, data transfer may fail. This applies in particular to settings of the serial interface, such as the baud rate and the data format. Please consult the manual of your balance to ensure that each setting corresponds to the factory setting.
    • Wrong serial cable. A&D scales generally require a straight 1:1 cable, not a crossed (null modem) cable. If you happen to find a cable that “looks like it may work”, check that it is wired correctly (using a continuity tester, you cannot tell how a cable is wired by looking at it from the outside unless you have superpowers).

It’s extremely rare for the RS-232 port on an A&D scale to be defective. We’ve only seen this happen once so far. Before you assume that your scale is defective, please make sure that you’ve excluded all other possible causes.

Additional information is also available from A&D:

If you are unable to record any data from your scale with RsWeight even after carefully following the instructions in this article and in the linked documents, please contact your weighing instruments dealer or A&D.

Please understand that we cannot offer free support if you have not bought your A&D scale or balance from us.

Interface description (RS-232) for A&D FX-i and FZ-i precision balances

A&D’s FX-i and FZ-i precision balances are equipped with a serial interface (RS-232) and can be easily connected to a computer for data transfer (if necessary with a converter from RS-232 to USB or to Ethernet). You can, of course, also connect other devices such as a serial printer, a data logger or a secondary display.

I recently tested all communication modes and their various settings in order to update the product description in our German scales shop. Since this took me a lot of time, I also translated my findings into English for publication on this blog.

I found that all commonly used communication modes (a.k.a. transfer modes, transmission modes) are supported and that they can often be fine-tuned in a way rarely possible with other balances. Concerning the data format, the FX-i and FZ-i balances support not only A&D’s standard format, but also several other formats which might make these scales suitable as a drop-in replacement for older Mettler Toledo or Sartorius balances. However, the more recent SICS protocol was not implemented.

The balances support a number of commands for bidirectional communication. Unfortunately, not all applications and settings are accessible via remote commands (for example, the limits for checkweighing cannot be set by a connected computer).

You can use any terminal software to test communication via the RS-232 interface (e.g. HTerm or PuTTY). For productive use, I recommend A&D’s free WinCT software or our Simple Data Logger software. The best integration can often be achieved by customizing your own software to communicate directly with the balance.

RS-232 interface and cable

FX-i and FZ-i balances have a built-in DE9M connector and require a straight (1:1) cable (not a null modem cable):
RS-232 interface on A&D FX-300i balance

Interface parameters

Default settings are highlighted in bold:

Baud rate: 600, 1200, 2400, 4800, 9600, 19200
Data bits: 7 bits or 8 bits
Parity: even, odd (for 7 data bits), none (for 8 data bits)
Stop bits: 1 bit
Data flow control (handshaking): none (RTS and CTS lines are connected internally but not used for actual flow control).

Data format

By default, the balances use the proven A&D format and transmit 17 ASCII characters for each weight value:

First line: number; second line: ASCII characters sent by the balance; third line: hexadecimal value
 1 2 3 4 5 6 7 8 91011121314151617
ST,+00456.89gCRLF
53542C2B30303435362E38392020670D0A

As far as I know, the very first scale from A&D with a data interface already used the same format. This is very impressive, particularly when other manufacturers sometimes change the data format between firmware updates or even between transmission modes.

As alternatives to the A&D format, 5 further data formats can be used. The user manual (PDF) contains a detailed description in chapter 10-6.

Communication modes

The corresponding setting in the menu of the balance is indicated in [square brackets].

  1. Key mode: The weight is transmitted when the PRINT button on the balance is pressed.
    • Mode A: Only when the weight is stable [dout / Prt 0].
    • Mode B: Immediate transmission (stable and unstable weight) [dout / Prt 4].
    • Mode C: The balance waits until the weight has stabilized and then transmits it [dout / Prt 5].
  2. Auto-print: The weight is automatically transmitted after stabilization.
    • Mode A: Return to zero is required before next transmission [dout / Prt 1]. You can set which range around zero counts as “zero” (10, 100 or 1000 digits) [dout / AP-b]. You can also specify whether only positive, negative or all values should be transmitted [dout /AP-P].
    • Mode B: No return to zero is required before the next transmission [dout / Prt 2]. You can set the required difference from the last stable value (10, 100 or 1000 digits) [dout / AP-b]. You can also specify whether lower, higher or all values should be transmitted (compared to the last stable value) [dout /AP-P].
  3. Stream mode: Continuous transmission of 5, 10 or 20 values/s [dout / Prt 3]. The frequency is determined by the display refresh rate [bASFnc / SPd]. This mode is not suitable if you connected a printer or hardware data logger to the balance, but it is required if you want to use an external display. Our data logger software can also easily handle this number of values per second.
  4. Interval mode: Transmission of a value every 2, 5, 10, 30 or 60 seconds or every 2, 5, or 10 minutes [dout / Prt 6].
  5. Command mode: The balance responds to commands received over the interface (bi-directional communication). Available in all modes, see commands below.

In mode 1, 2 and 4, the display blinks to signal that the weight has been transmitted.

Supported commands

“Q” is used to get the weight immediately, while “S” is used to get the next stable weight. All commands must be terminated with carriage return and line feed:

No.: 1 2 3
ASCII:QCRLF
Hex:51OD0A

Complete list of commands (in alphabetical order):

?IDRequests the balance ID (can be set through the menu).
?PTRequests the pre-tare value (which has been set using the PT command).
?SNRequests the balance’s serial number.
?TNRequest the balance’s model name.
CCancels the S or SIR command.
CALSame as pressing the CAL button.
<ESC>PSame as the “S” command. <ESC> is the escape control character (1Bh). Compatible to Sartorius SBI and older Sartorius balances.
<ESC>TSame as pressing the RE-ZERO button.
EXCCalibration using an external weight (only for FZ-i).
QRequests the weight data immediately.
OFFTurns the balance off.
ONTurns the balance on.
PSame as the ON:OFF button (“P” = power?).
PRTSame as pressing the PRINT key.
PTSets a tare value, PT:xxx.x g. The unit must be transmitted using A&D’s format (3 characters, right-justified, padded with spaces).
RSame as pressing the RE-ZERO key.
SRequest the stabilized weight.
SISame as “Q” (compatible to older Mettler-Toledo balances).
SIRSwitch to stream mode (continuous transmission).
SMPSame as pressing the SAMPLE key
TTares the balance.
USame as pressing the MODE key.
ZSame as pressing the RE-ZERO key.

Other settings affecting RS-232 data transmission

You can set the balance to acknowledge valid commands with the ACK control character (06h) and to reply to invalid with “EC” and an error number [SiF / ErCd]. The manual contains detailed information and examples in chapter 16-2.

The terminator can be changed from carriage return and line feed (0Dh 0Ah) to carriage return (0Dh) [SiF / CrLf]. This affects both the output and the input (commands).

It’s also possible to change the decimal point to a comma [bASFnc / Pnt].

The balance can re-zero (tare) itself after sending the weight, which is useful during formulation [dout / Ar-d].

FZ-i balances are equipped with an internal clock and calendar and can output the time, date or time and date [bASFnc / dout / S-td]. According to the manual, this only works when outputting GLP data and not with individual weight values (I will test this later this week). This information can be added to the weight data [dout / S-td].

You can use the animal weighing application to calculate an average weight and automatically output it (as shown in this short video). Statistical calculation mode can output numbered individual weight values and summarized statistical data.

You’ll find further settings in a function table in the user manual (chapter 10).

Further information

 

Raspberry Pi: Connecting a scale can be very easy…

…as long as you choose the right scale! The photo below shows an A&D EK-2000i compact balance connected to a Raspberry Pi 3 Model B using a compatible serial cable and an FTDI RS-232 to USB converter:
Scale connected to Raspberry Pi

Python and pySerial make it easy to read weight data from a scale

On the Pi, I used Python with pySerial to read the weight from the scale. The script I put together is trivially simple. You can download it here or just type it on the Pi:
Script to read weight sent from A&D scale

By pressing the PRINT-Button on the scale, I then sent a few weight values to the Pi and the script wrote them to the terminal (b’ is added by Python):
Weight printed to terminal

In a more useful application, you would want to parse the data sent from the scale to get the weight as a number and then do something with it (maybe write it to a database). You could also do interesting things with the GPIO on the Pi like sounding an alarm when a certain weight is exceeded (though a microcontroller might be better suited for this).

I then switched the scale to “stream mode” (continuous transmission) where it sent 10 values per second (stable or not). The output you see below is the result of placing a single object on the scale and waiting for it to stabilize:
Weight data in continuous mode

I hope this example shows that it can be really easy to transfer the weight from a scale to a Raspberry Pi.

Notes on scales and the Raspberry Pi

One advantage of A&D scales is that (almost) all of them use the same data format and interface parameters and that you’ll find a good description in the manual:
A&D EK-i balance data format

However, you could use also use scales made by other manufacturers as long as they come with an RS-232 interface and the ability to send the weight in ASCII format. Available data output modes vary, so please read the product description carefully before buying.

A converter like the one I used is already built into some scales, which means that you can directly connect them to the Raspberry Pi via USB (you won’t need a serial cable). You’ll find many Ohaus scales with this interface option and the ones I’ve tested worked fine. However, cheaper scales with a USB interface can often not be used with pySerial as they do not emulate a serial port. They can also present other challenges (e.g. data that is not transmitted in human-readable ASCII format).

You do of course not have to use Python, just make sure that your preferred programming language can communicate over a serial port on the Pi. The book Raspberry Pi with Java: Programming the Internet of Things (IoT) contains projects using Ohaus scales and, well, Java.

Finally, please don’t try to use the serial interface already provided by the Pi on the GPIO pins without a logic level converter (RS-232 voltage could reach up to 15V). Excellent further information on serial ports on the Raspberry Pi can be found here.

How to connect your scale to a network (Ethernet) using Moxa’s NPort 5110A

Many scales and balances are equipped with an RS-232 interface. Moxa’s NPort series and similar serial device servers allow you to connect such scales to a network (Ethernet). In this article, I’ll show you how to connect a Moxa NPort 5110A to an Ohaus scale and how to configure and test it.

1. Physical connection

The Moxa Nport 5110A has an RS-232 port (DE9M) on one side and an Ethernet port on the other side:

Data cables (red) are not included.

To communicate with your scale, you’ll need a matching RS-232 cable. The Ohaus Defender 3000 scale used in this example requires a DE9M to DE9F straight (1:1) cable:

Ohaus scale with Ethernet connection through Moxa NPort 5110A

Once the physical connection to the scale has been established, the Moxa NPort has to be configured. There are several ways to do so. I prefer the following method:

  1. Connect the NPort directly to a single computer (not a LAN) with an Ethernet cable.
  2. Use the NPort Administator software included with the device to configure it.

2. Network configuration

Start the NPort Administrator and locate your NPort by clicking on the Search button:NPort Administrator: Search

It should be found at the default IP address (192.168.127.254).

Note: It’s not always necessary to change your PC’s IP address if you’re running the NPort Administrator software. However, if you receive error messages during the following steps, try to temporarily set your computer’s IP address to an address on the same subnet (such as 192.168.127.1).

Select the Ethernet connection under Control Panel > Network and Internet > Network connections, right-click on it and choose Properties, then select Internet Protocol Version 4 (TCP/IPv4) and click on Properties. Make a note of your current settings so that you can restore them later, then enter the temporary IP address:
Ethernet IP address setting in Windows 10

If the NPort is shown as locked, right-click on it and select Unlock:
NPort Administrator: UnlockThe default password is “moxa”.

Right-click again and select Configure, then select the Network tab:
NPort Administrator: Network configurationEnter a static IP address, subnet mask and gateway that work on your network (or select DHCP or BOOTP for automatic address assignment, though this is not recommended for most operating modes).

To make the NPort accessible on our network, I set its IP address to 192.168.0.253:
NPort Administrator: Modified network settings

With the network configuration complete, you can disconnect the NPort 5110A from your computer and connect it to your network (LAN).

3. RS-232 configuration

It is essential that both the NPort and the scale use the same settings for the serial port (RS-232). In the Serial tab, select the port (the NPort 5110A only has one, but you still have to select it), check Modify and click on Settings:
NPort Administrator: Default serial settings

Enter the RS-232 settings found in your scale’s menu or user manual. The default settings of our Ohaus Defender 3000 scale are shown in the screenshot below:NPort Administrator: Serial configuration (RS-232)

Important: By default, the NPort is set to CTS/RTS flow control! You cannot change this setting when using the Setup Wizard through the web console. As mentioned before, I recommend using the NPort Administrator software instead.

4. Set an operating mode

To change the mode, go to the Operating Mode tab, check Modify, select the port and click on Settings:NPort Administrator: Operating Mode

The NPort 5110A supports several operating modes, I will only discuss the following two here:

  • Real COM mode: This mode allows you to create a virtual COM port on a PC and use the scale as if it were connected directly to that PC. This is very useful when you’re using software which only supports connections to COM ports and cannot communicate over TCP/IP (such as our 232key virtual keyboard wedge software).
    Please note that you’ll have to install a virtual COM port driver on the PC that communicates with the scale. In my tests on Windows 10, setting up the COM port through NPort Administrator did not create a new virtual COM port on the system. However, using the NPort Windows Driver Manager worked.
  • TCP Server: The NPort acts as a server, waiting for incoming connections from TCP clients on port 4001 (or on another user-defined port). The maximum number of concurrent connections can be changed from 1 (default) to up to 8. This mode works with software like our Simple Data Logger and many others.
    NPort Administartor: TCP Server mode

    Note: It is not necessary to set the data packing options unless you want to optimize either for minimal latency or maximum throughput. By default, the device will try to find a reasonable compromise (this is likely achieved by observing the delay between the data received over RS-232 to determine when a “line” of data is complete).

    When I set the scale to continuous transmission mode (wich has no delay between the weight values), the NPort packed 104 bytes in each Ethernet frame, corresponding to almost 6 weight values (the scale sends 80 values/s):
    Wireshark screenshot

For further details and for information on the other modes, please consult the user manual.

5. Run a test

Depending on the operating mode chosen above, you’ll have to use different programs to test the NPort 5110A. In addition to the software I’ve already mentioned above, you could use the following:

Real COM mode

A terminal program like Termite or HTerm can connect to the virtual COM port. Make sure that the connection parameters correspond to the settings of your scale.

TCP Server

You can use PuTTY set to “Raw” TCP mode to act as a TCP client:
PuTTY configurationThe following screenshot shows commands sent to the scale and the replies:PuTTY communication with Ohaus scaleAnother option is our free TCPTester software. It repeatedly sends a user-defined command to the scale (e.g. to request the weight). Once a reply has been received, the command is repeated:

TCPTester tcp utility used to test Moxa NPort connected to Ohaus scale
TCPTester free TCP test utility available from Smartlux

During testing, it can be useful to observe the LEDs on the NPort:

  • The “Ready” LED should be green.
  • The “Link” LED is green when the NPort has established a 100 Mbs Ethernet connection and orange on a 10 Mbps connection.
  • The Tx/Rx LED flashes orange when the NPort receives data from the scale and flashes green when the NPort is sends data to the scale over the serial port. Therefore, If you’re sending commands to a scale, you should be able to see it flash green. A reply from the scale would cause the LED to flash orange. If this is too difficult to see, consider using the web console to diagnose connection issues (I found it worked best in Firefox):
    Moxa web console monitor async

I hope this article has been useful. What are your experiences with Moxa’s NPort serial device servers? Please don’t hesitate to leave a comment! For support, please contact Moxa or your vendor.

You can support this blog by purchasing a PDF version of this article (contains no additional information) for US$1/copy. 

Record the weight from a scale or balance to a file – Simple Data Logger software

Connecting your scale to a PC and recording the weight should not be a difficult task. However, data logging software available from scale manufacturers or third parties is often expensive, difficult to use or frustratingly unreliable. We developed Simple Data Logger (SDL) to address these issues.

SDL writes the weight received from a scale or balance to a file, optionally adding the date and time. The CSV files generated by SDL can easily be opened in Excel and other spreadsheet applications for further processing and visualization.

Recording the weight from a precision balance using Simple Data Logger

SDL currently supports the following connections:

  • COM port: RS-232, USB virtual COM port, Bluetooth SPP, etc.
  • TCP/IP: Ethernet, WLAN (raw TCP format only).

Note: Your scale has to send data in ASCII format.

Get started recording weight values with Simple Data Logger

Connect your scale to your computer, download and install SDL, then follow these steps to configure the software (updated on December 7, 2019 – please refer to the documentation on the SDL website for the latest instructions):

  1. Input tab:
    Input tab: A&D scales and balancesIf your scale or balance is listed in SDL, simply select it and press the set default parameters for device button. Otherwise, select “generic measuring instrument” and enter the interface parameters manually. Set the radio button to match your connection: COM port (RS232, USB VCP, Bluetooth SPP) or TCP/IP.Make sure that you’ve specified a terminator (a.k.a. delimiter, the last character your scale sends in each line of data) or a timeout (e.g. 100ms, SDL will process received data if no additional data is received during this time).
  2. Output tab:
    Output tab (English US)Choose a file for the recorded data. SDL will create if for you if it does not exist (otherwise, data will be appended). Choose (or enter) a date and time format or select “None” from the list if you do not want SDL to add the date or time. Pick a decimal separator (for numeric values) and value separator (used to separate values from each other). The correct settings for your locale can be made automatically by clicking on the set values button.
  3. Start tab:
    Start tab: A&D FX-300i balancePress the start button to start recording data. Press the “PRINT” button on your scale or balance to send the weight to SDL. Depending on you scale, this button might have a different name (e.g. “DATA”). Some scales like the A&D FX-300i used in this example also have to ability to automatically transfer each (stable) weight. Data received will be shown in the event log (with the captured weight value shown in blue) and the weight will be written to the chosen file. Press stop to stop data logging and to close the file.

    Note: SDL can also handle continuous streams of weight data if this is what your application calls for (we’ve tested it with a scale which sends 100 values per second). The total number of recorded values is only limited by your disk space (but please keep in mind that Excel cannot open files containing more than 1,048,576 rows).

Process the weight values in Excel (or other spreadsheet applications)

Provided that you’ve made the right format settings in the output tab, you can easily open the CSV file in Excel (or other spreadsheet applications like Google Docs, OpenOffice/LibreOffice Calc). The weight will be recognized as a number, allowing you to make further calculations (i.e. calculating the total weight as shown below):
Everything shown here can be done with the “Basic” version of SDL (which is free for personal, non-commercial use). The “Plus” version has additional features including a timer to request the weight from the scale in user-defined intervals.

Very affordable licences can be purchased from our partner FastSpring (immediate license delivery).

 

Links and further information