Custom firmware and Farmbot OS 8

Hey there,
I tried to connect a custom board with a custom firmware to the farmbot OS 8 but I did not succeed so far…
I did not find how to specify a custom firmware in the web app.
In the combobox of firmware selection, there only are farmduino firmwares and “none”.
When selecting “none”, my custom firmware is not recognized and when I select a farmduino firmware it re-flash the farmduino firmware on my board…
Need help ! please.

What device are you flashing the firmware on? Is it a standard Arduino Mega 2560?
Make sure you chose the correct board type in your firmware.

Are you trying to flash a completely different firmware to your arduino? FBOS expects specific signals (gcodes) from the firmware to determine its current state.

My problem is that I do not find how to specify that my board is a custom board and so avoid that Farmbot os flash the custom board.

Because for now, to make it work, I have to select board « genesis 1.4 » and then flash (myself) my custom board.
So if tomorrow there is an update from Farmbot, it will reflash my board…

I know that there is a way in the configurator to set the firmware to “custom”. But I’m not sure if that decition will change anything in the webapp.

Can you be more specific because I do not find where is this « banner » ?

I think that this one is meant:

But I’m not sure if this even exists anymore.

It would be nice to know, indeed.

I can confirm that it do not exist anymore… here is my configuration page, and there is no clickable area…

So my question is still, how can we configure farmbot OS 8 to operate with custom firmware ?

That MCU firmware selection drop-down was on the last page . . where you enter WebApp credentials. It has been removed from there.

1 Like

As of version 8 of farmbot os, custom arduino-firmware is no longer allowed to be selected anywhere. The only way to bundle custom firmware is to build the OS image from source. This is to prevent incompatibilities and failures at runtime. If you are building custom arduino firmware, you will need a development build of farmbot os to debug your changes anyway.

This document outlines how to build farmbot os from source. Here is an outline of extra steps for building custom firmware.

  • Follow steps in linked guide to make sure you can build correctly
    • ensure that you can burn a firmware image
  • change directory into the arduino_firmware git submodule
  • change the git remote to point to your fork of the firmware project
  • build a hex file for your target firmware hardware
  • overwrite one of the existing hex files in the project. the version string in the source must match the hex file name.
    • Example: if you overwrite $FBOS_SRC_ROOT/farmbot_firmware/priv/arduino_firmware.hex, then FARMBOT_BOARD_ID must be set to 0 when building the firmware.
  • if you are attempting to build a new project from scratch, (IE not a fork of our officially supported firmware), you will need to ensure that the protocol is followed exactly the same way as the official firmware. Especially the REPORT_SOFTWARE_VERSION command.
1 Like

Thank you @connor for such precisions, it is very clear for me now.

What command(s) accomplish this, precisely ?

I can build farmbot.fw
I can build in my clone of the forked farmbot-arduino-firmware repo and have a new .hex
So I’m only missing this step above.

The .hex file should replace the corresponding hex file in the farmbot is source directly. For example a hex file targeted at a version 1.3 farmduino board would replace farmduino.hex in the farmbot is source.

1 Like

Thanks @connor . . still not clear what that step is or whether we need it :slight_smile:
Just trying to help all the keen product afficionados around the planet.

You won’t need to do these things unless you intend on modifying the firmware source at all. The pre bundled hex files are fine otherwise.

That’s Ok . .
What’re you doing up at this hour anyways ?? :slight_smile:

I’m having a crack at finding more about this issue which I have submitted :slight_smile:

( and yes, I have modified the farmduino_k14 firmware to enable Debug logging ~ )