     ConfigUpdate
   """
 
-  # alias Farmbot.CeleryScript.Ast
   alias Farmbot.CeleryScript.Command
   require Logger
   alias Farmbot.Serial.Handler, as: UartHan

    for {key, val} <- blah do
      Logger.info ">> Updating #{key}: #{val}"
      Farmbot.BotState.update_config(key, val)
    end
  end


  """
  @spec run(%{package: Command.package}, [Command.pair]) :: no_return
  def run(%{package: "arduino_firmware"}, config_pairs) do
    # check the version to make sure we have a good connection to the firmware
    :ok = check_version()

    blah = pairs_to_tuples(config_pairs)
    current = Farmbot.BotState.get_all_mcu_params

    params = filter_params(blah, current)

    total_count = Enum.count(params)

    Enum.reduce(params, 0, fn(pair, count) ->
      do_update_param(pair)
      count = count + 1
      percent = ((count / total_count) * 100) |> trunc
      if rem(percent, 10) == 0 do
        IO.puts "CONFIG UPDATE: #{percent}%"
      end
      count
    end)
  end

  def run(%{package: "farmbot_os"}, config_pairs) do
