I am attempting to control a Folinn VFD (Manual: Manual) with an Arduino Uno via a MAX485 module such as this.

  • Pins for MAX485:
    • DI > D8
    • DE & RE > D10
    • RO > D11

VFD settings:

  • F00.01 set to 2
  • F00.06 set to 9
  • F13.00 set to 1
  • F13.01 set to 5
  • F13.02 set to 3

At this stage I am attempting a very simple code just to turn the VFD on:


   ModBus RTU control VFD

   Address               : 01H  (is the address of the VFD)
   Function              : 06H  (write function code)
   Starting data address : 20H
                         : 00H  (2000H  is the address of control command)
   Data(2Byte)           : 00H
                         : 01H  (0001H is forward command)
   CRC CHK Low           : 43H
   CRC CHK High          : CAH


#include <SoftwareSerial.h>

#define SSerialRX        11  //Serial Receive pin
#define SSerialTX        8  //Serial Transmit pin
#define SSerialTxControl 10   //RS485 Direction control
#define RS485Transmit    HIGH
#define RS485Receive     LOW
#define Pin13LED         13

// From manual vfd Forward command = 01H 06H 2000H 0001H 43CAH

byte request1[] = {0x01, 0x06, 0x20, 0x00, 0x00, 0x01, 0x43, 0xCA}; 

SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX
byte byteSend;

void setup()
  // Start the built-in serial port, probably to Serial Monitor
  Serial.println("SerialRemote");  // Can be ignored

  pinMode(Pin13LED, OUTPUT);
  pinMode(SSerialTxControl, OUTPUT);

  // digitalWrite(SSerialTxControl, RS485Receive);  // Init Transceiver


void loop()
    digitalWrite(SSerialTxControl, RS485Transmit);
    RS485Serial.write(request1, sizeof(request1));


With the MAX485 connected to the correct ports (S+ and S-) on the VFD, this current setup receives no response is someone able to spot where I am going wrong? I have taken the values for CRC CHK Low & High from a different example, is this the issue?

Have also tried setting F00.01 to an unlisted '3' setting that I have seen pop up in other discussions but this made no difference. Any advice would be much appreciated, let me know if I can supply further details.

(I chose this method based on this example

1 Answer 1


User on other site (https://forum.arduino.cc/index.php?topic=663365.0) Might have default run conditons on VFD set differently or by hardware.

Check the VFD is listening to the ModBus Comms. OK.

Check VFD is 'Ready to Run'. Hardwire e-stop or 'Active' inputs. F00.22 Check Binding source F00.05 Check Set min Hz F01.01 Check Set min Hz

Give drive MIN Hz So when received RUN signal has default speed to goto.

Are you doing a Hard Reset on the UNO every time you want to send the Modbus string? Code runs once, does not actively transmit.

  • Hi Spannerz, thanks for the suggestion I have set: - F00.01 Command source selection - 2:RS 485 communication control - F00.06 Frequency A command selection - 9:RS 485 Communication Is there another setting I need to look at to be sure it is listening to ModBus? Commented Feb 27, 2020 at 4:47
  • OK. F00.06 is the frequency setpoint. Sure you can send it a number of the speed you want to run at, but are you? Almost suggest setting to 1:Keypad value, retentive on power failure. RUN signal is different to SPEED setpoint.
    – Spannerz
    Commented Feb 27, 2020 at 5:01
  • I'll be back tomorrow. Cheers.
    – Spannerz
    Commented Feb 27, 2020 at 5:03
  • That makes a lot of sense. Will try setting the frequency via keypad and just sending the run command. Will give it a crack in the morning and let you know how it goes. Commented Feb 27, 2020 at 5:18
  • Hi Spannerz, thanks for the additional information. I have been hard resetting the UNO so I think the problem lies in one of the settings you have mentioned. Flat out this morning but will try adjusting these settings later today and report back Commented Feb 27, 2020 at 22:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.