uTracerJS is a javascript/nodejs software that can control uTracer similarly to the original uTracer windows software (OuTWS), or another alternative “utMax/uTracer”. It has exactly the same interface, look and feel as uTracer ESP32 interface, but without any need for an EPS32 module. The connection with the uTracer (it works with uTracer3, 3+ and 6 (also with the positive grid extension board) is done using the the same cable (either COM-to-COM port, or USB-to-COM port).

The software runs in a web browser locally on your windows/mac/linux/Raspberry Pi/Thin Client PC computer (basically anything that can run NodeJS). It is also possible to run it on a desktop computer but access it via a tablet or phone using a web browser. For example, one can connect a Raspberry Pi to uTracer with a cable, run uTracerJS there and then access the interface and control the data acquisition using a web browser on a laptop, tablet or phone. This way was tested for example using the C.H.I.P. computer, which has ARM Cortex-A8 CPU.

If you are looking for the same software but that also works via wifi and using a dedicated hardware (ESP32) check uTracer and ESP32

If you want to test it without installation, try the online demo version here


  • uTracerJS.zip ver. 0.95 (build 20220718). The archive contains builds for: macOS x64 (Intel), macOS arm64 (M1), windows x64 and linux x64
  • On demand, it is possible to build for the following platforms: alpine, linux, linuxstatic, win, macos, (freebsd) and arch: x64, arm64, (armv6, armv7), which makes it possible to run uTracerJS on all possible platforms including Raspberry Pi and so on


  • natively works with uTracer’s .utd files (stores and loads already acquired with original software)
  • understands .uts config files from the original uTracer windows software (OuTWS))
  • acquires measurements up to the specified in the menu ‘Power max’ value (this option is not available in OuTWS)
  • helps design of amplifiers and interactive manipulate with Load Lines and operating point using acquired tube curves
  • generates LTSpice tube models for simulation of amplifiers
  • displays curves in a window or full screen, allowing for easy zooming of plotted curves using a mouse
  • compares up to 4 sets of curves at the same time, for example for matching tube pairs or quads
  • automatically corrects of anode and screen voltage sagging during Quick Tests (not available in OuTWS)
  • measures and plots grid current (needs uTracer6 and positive grid extension board) 

Installation (new way)

  • unzip uTracerJS.zip somewhere on you drive, for example create a folder ‘uTracerJS’
  • go to that folder and run uTracerJS-* depending on your OS:
  • in the web browser open page http://localhost and click on a small “tube/triode” icon in the top left corner of the menubar.
  • follow the instructions on the webpage, select the serial port that correspons to uTracer and press Apply
  • restart uTracerJS-*

Installation (manual way, obsolete)

  • after the first two steps from above (unzipping and running the binary), open page http://localhost/serialports in the web browser
  • follow the instructions on the webpage and copy the name of the serial port, for example COM4 (on Windows) or /dev/tty.usbserial-2110 (on macOS)
  • edit file ‘uTracerJS.txt’ located in the folder ‘uTracerJS’ and paste the port name as the first line in that file and the web port number, for example 8080 (or any other web port of your choice, the default is 80) as the second line in that file.
  • save uTracerJS.txt and restart uTracerJS-*

Start using uTracerJS

  • go to http://localhost:80 (or other port that you specified above, for example 8080)
  • first go to the ‘Calibration’ tap and copy the calibration values from the original uTracer’s windows software and press ‘Save to EEPROM’ (it saves it to your hard drive)
  • for a quick check, if everything is configure properly, go to ‘Debug” tab, press on PING button and see if you get any response (values) in the lower part of the table
  • If everything is fine, start making measurements! All the acquired data (.utd) files are stored in the ‘data’ folder (inside uTracerJS folder) and also accessible via a file-browser on your machine, or via ‘Files’ tab in the webinterface. You can also copy your existing .utd and .uts files there (again either using a file-browser on you machine, or by uploading via ‘FIles’ tab).

Note 1 (for Mac and Linux users)

While running the executables/binaries from the command line, do not use the absolute path but first go there. For example if you unziped the uTracerJS folder into your home folder with username YOURUSERNAME, then do the following in the terminal/shell on Mac:

cd /Users/YOURUSERNAME/uTracerJS

or on Linux

cd /home/YOURUSERNAME/uTracerJS

Note 2 (when uTracerJS stops working and does not want to start)

It can happen that after trying to execute uTracerJS on any of the platforms, it immediately quits. On Mac and Linux it is easy to see the error message but on Windows the command-line terminal (black terminal window) closes immediately. This behavior happens because uTracerJS uses a temporary folder on a hard-drive, which might be not cleaned properly after the previous execution. To solve this problem, one has to erase manually the content of the ‘pkg‘ folder (indicated in the terminal for Mac and Linux platforms). For Windows users, the location of the path is typically 'C:\Users\YOURUSERNAME\AppData\Local\Temp\' On a Mac it is typically something random (for example, ‘/var/folders/pl/h6h3_kb52235d4lnx2h846y40010gn/T/pkg/‘), so that’s why one has to pay attention to the error message displayed in the terminal window.

On Windows, it is also possible to run uTracerJS in the command-line window, which always stays open. For that one has to open a command prompt at the location of uTracerJS-win-x64.exe file, and manually key in the name ‘uTracerJS-win-x64.exe’ to run it within that window:

  1. Navigate to the folder where your executable resides
  2. Shift-Right click and select “Command Window from here”
  3. Type in the name of the executable and hit enter
  4. The process should run, but the window should stay open

Note 3 (when uTracerJS stops working because the server on port 80 cannot start)

It can also happen that uTracerJS cannot start the server locally on port 80, because there is another software that uses port 80 or some firewall/antivirus software forbids that. If one uses the method above to keep the shell/terminal window open, in this case one would see error like this:

[LOAD] Found uTracerJS.txt, getting the COM port name and localhost port from there
      throw er; // Unhandled 'error' event
Error: listen EACCES: permission denied
    at Server.setupListenHandle [as _listen2] (node:net:1317:21)

The simplest solution is to use another port. For that one has to edit the text file uTracerJS.txt (located in the same folder as the main binary/executable) and change 80 to 8080, for example. Then, use http://localhost:8080 in order to start using the webinterface.

Running on a embedded system

uTracerJS works on any existing platform that can run javascript, so basically on all possible desktops, laptops, development boards (Raspberry Pi, C.H.I.P., Orange PI), tablets and phones 🙂