Skip to content

FarmBoard 2 universal firmware (bench test)

One FarmBoard 2 image for both kits. The FarmBoard 3 counterpart is on the FB3 universal page.

The Printer Model decides which kit is active:

  • Bambu H2 series (H2S/H2D/H2C) selects the H kit.
  • Every other model selects the P/X kit. That is the default after a flash.

Why this one cannot detect the kit by itself

Section titled “Why this one cannot detect the kit by itself”

The FB3 build works out its kit by driving the fan port both ways and measuring the current: an actuator conducts in both directions, a fan only in one.

FarmBoard 2 cannot do that measurement at all. Its fan output is a single pin, on or off, with no H-bridge to reverse it, and it has only two current-sense channels (door and bender). Neither half of the measurement exists in the hardware. So on FarmBoard 2 the Printer Model is the kit selection, and it has to be set once, in config mode, before first use.

This is a hardware limit, not something a later revision can add.

What actually changes between the kits on this board

Section titled “What actually changes between the kits on this board”
P/X kitH kit
Bender full travel7.0 s6.0 s
Bender wiggle steps2000 / 667 mssame
Door travel default9.0 s10.0 s
Fandrivennot driven, output held low
Bending sequenceidentical

The bending sequence is the same because on FarmBoard 2 the H kit drives both of its benders from the one bender channel through a Y splitter. The FB3 H kit is genuinely different: a second driven bender with an alternating handover, and different step distances for its 75 mm bender. The two boards’ H kits are not interchangeable, and their timings must not be copied between builds.

Changing the Printer Model moves the door-travel default with it, but only if the stored value is still the other kit’s default. A value you tuned by hand is left alone.

This build also carries the door-open safety fix: T1 always drives the door open rather than trusting a remembered flag, and T2 opens the door first unless a door-open travel actually completed this cycle.

Feature base is the P/X 2.95-beta line, so the board page over your normal WiFi is switched off in this build; use config mode (five taps on SW2, join the FarmLoop network).

This build uses the standard FarmBoard 2 partition layout, so an existing FB2 board can take the OTA file directly. No partition change, unlike the FB3 universal build.

Everything the FB3 universal build gained between its rev5 and rev9 is now on FarmBoard 2 too, ported as one delta:

  • PrusaLink username and password. Current Buddy firmware shows both and no API key. The board tries the password as an API key first and falls back to a proper Digest login only if the printer asks for it. Boards already set up with a working key migrate silently.
  • Test before save. The connection test uses the values on the page; nothing is stored until you press Save.
  • No more mode flip mid-print on a Prusa, Snapmaker or Elegoo. A five cycle bend used to look like a dead printer link and hand the triggers back to Mechanical mode while the print was running.
  • The reworked board page. Your printer first, then Status in plain words, then a Mechanical / Digital choice that only asks for WiFi and a printer login if you pick Digital. Secrets are masked.

What FarmBoard 2 does not get, because the hardware cannot do it: kit detection (single-pin fan output, no third current sense) and the Bender 2 controls (one bender channel). The printer model still has to be set by hand, and that has not changed.

The image is now 1,221,136 bytes, 93.2% of the FB2 slot, about 90 KB left. That is the ceiling for this line: unlike FarmBoard 3 there is no larger partition to move to.

rev3: Elegoo markers unfrozen (same fix as FB3 rev10)

Section titled “rev3: Elegoo markers unfrozen (same fix as FB3 rev10)”

A captured print on the Centauri Carbon showed the door closing at the start and never opening in Digital mode. The board only believed marker values while the printer reported “printing” (SDCP status 18). The CC sends the start marker before it reaches that state and runs the whole FarmLoop end section in status 1 or 16, so every marker was ignored and the door only closed because of a fallback. FarmBoard 2 runs the same transport code, so it had the same defect.

rev3 believes markers while a job is active in status 18, 1, 16 or 9, and ignores them only in the three transitional states where the printer’s pause and stop path is known to replay an old marker. Two misleading boot-log lines are fixed as well (“PrusaLink polling” on an Elegoo, and a MISSING API key on a printer that has none).

Everything from the FarmBoard 3 line that applies here, in one step:

  • rev11: MQTT reconnect back-off. After three straight failed connects the board tries once a minute instead of every five seconds, so the buttons stay usable while a printer is unreachable.
  • rev12: the full LED legend on the page and in the serial help, and a Bambu connection test in setup mode that says the encrypted handshake cannot run with the setup network up instead of failing.
  • rev13: MQTT receive buffer 32 KB to 24 KB (the H2S starvation fix, measured 116 to 3571 packets an hour), watchdog brackets on the synchronous TLS calls, door-blocked detection opt-in at 0.20 A with the safety step skipped when off, one threshold control on the Trigger mode card, and no bender retract on a door block.

Left out on purpose, because FarmBoard 2 cannot do them: kit detection and its first-boot refusal, Bender 2 in test mode, and the second bender stop at init. This build has not been on FarmBoard 2 hardware yet.

The page first

  1. Enter setup mode and open the page on a phone. Printer selector on top, then Status, then the Mechanical / Digital choice. Pick Mechanical: the credential fields must vanish. Pick Digital: they must return. There must be no Bender 2 buttons anywhere, including under Advanced. Change the printer model, press its Save, and confirm the reply names the kit.

P/X kit next, since that is the default

  1. USB-C flash the merged image below. Confirm the Printer Model comes up as Bambu Lab P/X and the board behaves exactly like 2.95-beta-rev14.
  2. Fan runs on the fan output. Bender full travel reads 7.0 s in the status printout.
  3. One full cycle, mechanical and Digital.

Then the H kit

  1. Config mode, set Printer Model to Bambu H2 series, save, reboot.
  2. Status printout must now show bender full travel 6.0 s marked [H kit], and the door travel default should have moved to 10000 ms.
  3. Fan must do nothing: the web fan buttons and serial fan on must leave the output dead.
  4. Both benders move together off the Y splitter, and park home after reset.
  5. One full cycle, mechanical and Digital.

Then the thing most likely to be broken

  1. Digital mode on an H2: the board must actually receive data, not just connect. 9a. Prusa login on this board. Type the username and password from the printer’s PrusaLink screen and press Test printer connection without saving. The reply names which login worked. Then test a deliberately wrong password: the board must say the credentials were rejected, not that the printer is unreachable. 9b. One full Digital print on a Prusa, Snapmaker or Elegoo, log running, watching across the bending. No liveness warning, no fall back to Mechanical, and the safety check and final door close exactly once each. The H model builds its MQTT topics from the printer serial exactly like the P/X model does; if that path were wrong the board would connect and then hear nothing, and fall back to Mechanical after 30 s. Confirm live printer data on the page.
  2. Switch the model back to a P/X entry and confirm the fan comes back and the travel returns to 7.0 s. The switch must work in both directions.
  3. Door check on every run: the T1 line in the log must be followed by [P1] Door opening: lines. A T1 with none of them means something is wrong. 9c. Elegoo, the rev3 fix. One full Digital print on a Centauri Carbon with the log running. The door must open at T1, and the log must show real marker edges, not a T0 (RUNNING fallback) line. That fallback line is the fingerprint of the old defect. 9d. Elegoo pause, resume, stop. Start a print, pause it, resume it, then stop it, with the log open until the printer is back at idle. The door must not move and no marker edge may appear after the stop. This is the one replay case the fix could not be checked against.

Also worth confirming, since the model list changed

  1. Snapmaker U1 and Elegoo Centauri Carbon still drive the bender the reversed way. The H kit is not reversed; it is mounted the same way round as Bambu P/X.

rev4

  1. Safety skip. Detection off (the default). Run a cycle: between the last bend and the final close the log must show SAFETY CHECK SKIPPED - door blocked detection is off and the door must not move. Tick Door blocked detection on the Trigger mode card, leave 0.20 A, save, run again: the door closes and opens for the check and passes.
  2. Unreachable printer. Wrong printer IP, save, reboot. After the third failed connect the log must say 3 failed connects - retrying once a minute and the mechanical gestures must respond in between.
  3. H2S on FarmBoard 2. One Digital print with the log open. No WARNING: connected but NO printer data and no reconnect for the whole print; the receipt must read all M.

Download OTA .bin (existing FB2 boards)

USB-C flash (Chrome / Edge only)USB-C flash needs HTTPS

sha256: merged ec307a82…, OTA a13ec39a…

The app image is 1,225,504 bytes, 93.5% of FarmBoard 2’s 1,280 KB slot, so there are about 83 KB left. The first universal build was 1,207,616 bytes; the FB3 rev5..rev9 features cost 13,520 bytes on top. Worth knowing before anything else large goes into this line: unlike FarmBoard 3, there is no bigger partition to move to, since an FB2 in the field has the layout it was flashed with.

  • rev3 - Elegoo markers unfrozen, but with the 32 KB MQTT buffer that starves an H2S link and door-blocked detection at 0.12 A. OTA · merged
  • rev2 - level with FB3 rev9, but with the Elegoo markers still frozen: the CC’s door does not open in Digital mode on this one. OTA · merged
  • v1.0-beta - the first universal FB2 build, before the FB3 rev5..rev9 features were ported. OTA · merged

USB-C flash any FarmBoard 2 build from the Beta firmware page, or the stable Firmware page. Same partition layout in every direction, so switching back is always safe.