Skip to content

OpenScale Configuration

Communication Options

The OpenScale - IoT can be configured over Bluetooth, USB-C and serial UART. Connecting to the device over WiFi is read only and requires a TCP/IP terminal connection. All communication interfaces are enabled by default.

Bluetooth

The OpenScale - IoT broadcasts as an available Bluetooth device named "OpenScale-IoT-#### where "###" is a unique 4-digit ID# for the ESP32 module. Check "Broadcasting as "OpenScale-IoT-ID#" in the Configuration Menu for the specific device ID if you're not sure of the correct ID#. After pairing and connecting to the OpenScale - IoT, open a serial terminal program and connect to the device port. If you're using a phone to connect to the OpenScale - IoT you'll need an application installed. We found the Android app called "Serial Bluetooth Terminal" worked great in our testing.

Wired Serial Interfaces - USB-C and Serial UART

The USB-C interface lets users connect the OpenScale - IoT to a computer to configure and view data over a serial terminal application. The Serial UART interface lets users connect to an other serial UART device or to a computer through a serial-to-USB converter. The default baud rate for these interfaces is 115200.

WiFi

The OpenScale - IoT can connect to a WiFi network to broadcast data from it using TCP/IP. To connect to WiFi first open a terminal either over a wired connection or Bluetooth. Next, open the configuration menu and enter "W". Follow the prompts to enter the WiFi network's ID and password and the terminal will print out if it successfully connects to the network. Once connected, the menu now includes lines saying "WiFi connected. IP address: " along with the TCP port. The IP address is unique to each OpenScale - IoT but the TCP port will always be "10001".

Once connected, open a TCP connection in a terminal program that supports connecting to a TCP Client. Enter the device's IP and TCP port and you'll see data printing out. You can also have another terminal connection to the OpenScale - IoT over serial or Bluetooth simultaneously to change settings.

Configuration Menu

When you initially open a terminal connected to the OpenScale - IoT (with the baud set to 115200 and line endings enabled) it will automatically start printing out data that includes a timestamp, weight (in grams) and TMP102 temperature (in Fahrenheit) every second. With the terminal open, simply enter "X" to open the configuration menu and you'll be greeted with this menu:

Configuration menu printout

From here just enter the matching number/letter for the setting you'd like to adjust. The menu automatically times out after 60 seconds and resumes reporting data if no characters are sent. Let's take a quick look at each option and the available settings (where applicable):

  • 1) Tare scale to zero - Tare the scale
  • 2) Calibrate scale / Current scale factor - This lets you input a manual value for what the OpenScale measures. Use this for calibrating the OpenScale to a known weight value.
  • 3) Suppress Negative Output - Prevents negative weight values from printing out.
  • 4) Enable timestamp - Enable or disable the timestamp.
  • 5) Set delay between reports - Change the delay between reports in milliseconds (Default is 1000ms)
  • 6) Set baud rate - Set the baud rate. Default is 115,200bps
  • 7) Set external baud rate - Set the external (Serial UART) baud rate. Allows users to have different baud rates for Serial UART and Bluetooth/USB-C if necessary.
  • 8)Set units of measure - Set the units of measure. When selected this prints out available units along with the currently selected unit. Enter the number corresponding to the preferred units. Available units of measure are grams, kilograms, ounces, pounds, raw output and pieces.
  • 9) Set number of decimal places - Set the number of decimal places for all values printed.
  • 10) Enable on-board temperature sensor output - Toggle the on-board TMP102 output on or off.
  • 11) Enable external temperature sensor output - Toggle output for an external temperature sensor connected to the TEMP connections.
  • 12) Set temperature units of measure - This toggles between temperature values between Fahrenheit and Celsius.
  • 13) Set delay between external temperature reports - Set the number of miliseconds between temperature updates. Minimum of 500ms max of 1000ms.
  • 14) Enable status LED - Toggle the STATUS LED on and off. By default the status LED alternates between on/off with each report.
  • 15) Enable serial trigger - Toggle the serial trigger character on or off. When enabled, the OpenScale will only send reports when it receives the serial trigger character.
  • 16) Set serial trigger chararacter - Set the serial trigger character. Default is "!"
  • 17) Enable external UART - Toggle the external UART (RX/TX) on or off. Default is On.
  • b) Select Bluetooth Channel - This opens the Bluetooth channel selection menu. Options are Bluetooth SPP/Classic, Bluetooth Low Energy, Dual (SPP/Classic and BLE) or OFF. Dual is enabled by default.
  • t) Enable TCP Server - Toggles the OpenScale - IoT WiFi TCP server on or off.
  • w) Set WiFi name and password - Enter WiFi network credentials. First enter the network name, then the password.
  • u) Update Firmware - Automatically update the firmware over a WiFi connection.
  • f) Factory reset - Restore all settings to factory presets.

Scale Calibration

Before calibration make sure to set the OpenScale to report in the unit you want to calibrate with by entering "8" and selecting the corresponding number (grams, ounces, etc.). Next, enter "2" to calibrate the scale. First remove all items from the scale and enter a key to tare it. The OpenScale will tare and print out when it completes along with the current tare value. Once this process finishes, place an object with a known weight and then enter that value as a float. The new calibration factor is stored and prints out.

After the scale is calibrated, converting between units is seamless; the firmware automatically converts between units and there is no loss of precision. The scale updates roughly every 500ms.