How it works

Phidgets boards

A Phidgets temperature board through Phidgets' network server, the protocol spoken without their library.

Phidgets boards are the usual thermocouple add-on for gas roasters, and the most common device in Artisan after Modbus. If your roaster has one, Roastwarden logs its temperatures: bean and environment temperature, and any other input as an extra channel. A Phidgets board only reads: it gives you logging, alarms and analysis, not control.

What it reads

A Phidgets temperature board through Phidgets' network server (phidget22networkserver, TCP 5661) running on the computer the board is plugged into: a Raspberry Pi beside the roaster, or your Roastwarden server itself. Roastwarden is a network client of it, as Artisan is with "remote" on; no Phidgets library is linked into the server or the image.

BoardInputs (chN)
1048 (USB, PhidgetTemperatureSensor 4-Input)ch0–ch3 thermocouples, ch4 the board's own sensor
TMP1101 (VINT, on a hub port)ch0–ch3 thermocouples, ch4 the board's own sensor
1051 (USB), TMP1100 (VINT)ch0 a thermocouple, ch1 the board's own sensor
TMP1200 (VINT)ch0 an RTD (PT100 or PT1000)

chN is Phidgets' own channel number among the board's temperature inputs (what the Phidget Control Panel shows and Artisan's setChannel takes). Readings are °C. A thermocouple's type is set on the board (J, K, E or T; K by default); an RTD's element and wiring likewise.

Not read: Phidgets' voltage, current and digital inputs (a 1018, a DAQ1400), outputs (relays, PWM, voltage outputs for a burner), and a board on the server's own USB without the network server. A Phidget connection only reads, so a Phidget roaster logs at control off; a roaster that also takes commands needs a second connection that carries them.

Adding one

  • Roasters → Add roaster: "Phidgets temperature board" in the Connection step: the computer it is plugged into, BT and ET inputs, the thermocouple type; port, password, board, intervals and RTD under Advanced. Test reads the board. A network server found on the LAN (mDNS _phidget22server._tcp) is offered in "Found, not added yet".
  • roast roaster add ID --transport phidget22 --host H [--port 5661] [--password P] [--serial-number N] [--hub-port N] [--thermocouple K]; another input: roast roaster map ID --field exhaust=ch2 (BT and ET stay).
  • From Artisan: the 13 Phidgets machines of Artisan's catalogue (Phidget 1048 and TMP1101 databridges, TMP1200, Diedrich's 4 and 6 sensor logging, Mill City, VNT, Titanium TGX, Tostabar Genius, Hive's Data Dome) plan a phidget22 connection (Artisan machines): roast roaster add ID --artisan "Diedrich/6_Sensor_Data_Logging" --host 192.168.1.60 --password …. The thermocouple types (phidget1048_types), data rate and RTD settings come from the file; Artisan's extra devices 1048_34 / TMP1101_34 are inputs ch2 and ch3, _AT the board's sensor (ch4); its 1018 voltages, Modbus extras and sliders are noted and left out. A 1051's or TMP1100's board sensor, which Artisan draws as ET, is the channel board. A file with Artisan's remote server set (phidgetRemoteFlag, phidgetServerID) keeps that host.

On the computer with the board: install Phidgets' drivers and network server (https://www.phidgets.com/docs/OS_-_Linux; Windows and macOS: the Phidget Control Panel's Network Server tab), switch the server on, and check the board shows in the Control Panel there.

The connection

The settings, as the API and roast name them (protocol phidget22, Phidget22ConnectionConfig):

KeyDefaultMeaning
host(required)the computer running the network server
port5661the network server's port
passwordnonethe server's password; answers show ********, and sending that back keeps the saved one
serial_numberthe first temperature boardthe board's serial number (a VINT board's is its hub's)
hub_portanya VINT board's hub port, 0–5
poll_interval_ms1000how often a sample is made
data_interval_ms256how often the board reports each input (a 1048 takes 32–60000)
thermocouple_typeKevery thermocouple input's type: J, K, E, T
thermocouple_typesnonean input's own type: {"ch1": "J"}
rtd_type, rtd_wirespt100_3850, 2a TMP1200's element (pt100_3850, pt1000_3850, pt100_3920, pt1000_3920) and wires (2, 3, 4)
ingest{"fields": {"bt": "ch0", "et": "ch1"}}which input is BT, ET or a channel (ingest mapping)

Each sample is the mean of the readings since the last one (Artisan does the same when a channel is not async); an input with no new reading keeps its newest for three data intervals (at least 3 s), then has no value. An error event from the board (a thermocouple open, out of range) leaves the input without a value until it reads again. commands is refused.