Which board generation is which, and how their pins differ.
Generations
| Board files | Relays | Thermocouples | Firmware profile | |
|---|---|---|---|---|
| Gen1 | archive/hw_archive/osf_2022-05-19, osf_2022-06-30, osf_2023-02-01, osf_2023-12-06 | 1 | 2× MAX6675 | gen1_nano, gen1_nanoevery |
| Gen2 | archive/hw_archive/finn_recent | 2 | 2× MAX6675 | gen2_nano, gen2_nanoevery |
| — | hardware/ (current KiCad) | 2 | 2× MAX31855K | None (#22) |
hardware/ is not gen2. It uses MAX31855K converters, which the firmware’s MAX6675 driver cannot read, and routes the thermocouple pins differently.
Pin maps
Each net below is the Nano A1 pad’s net, read out of the PCB.
| Arduino pin | Gen1 | Gen2 | hardware/ |
|---|---|---|---|
| D2 | /E_STOP | /E_STOP | /E_STOP |
| D5 | — | /LED | /LED |
| D6 | /PWM (relay K1) | /Relay1 | /Relay1 |
| D7 | — | /Relay2 | /Relay2 |
| D8, D9 | — | — | — |
| D10 | /SS1 | /SS1 | /TC_CLK |
| D11 | /SS2 | /SS2 | /SS2 |
| D12 | /TC_DATA | /TC_DATA | /TC_DATA |
| D13 | /TC_CLK | /TC_CLK | /SS1 |
— is unconnected.
Gen1 has one relay
Gen1 has one relay, K1, driven from D6. D7 is not connected. Both thermocouple channels are populated.
The gen1 firmware profile sets RLHT_RELAY_COUNT to 1 and does not define RELAY2, so D7 is never driven. Channel-2 commands are still accepted, so the wire format is the same on both generations, but they drive nothing: GET_STATE never reports RLHT_FLAG_RELAY2_ON or a channel-2 on-time. A channel can still read either thermocouple through SET_TC_SELECT.
GET_CAPS is the same on both generations, so a host cannot tell them apart over the bus.
Gen1 has no status LED either: D5 is unconnected, and the gen1 profile compiles the LED out (RLHT_HAS_STATUS_LED).