Error usando la libreria ArduinoModbus

Hice un programa con una libreria Modbus y funciona perfectamente, pero como me gusta usar el "standard" la recompile con ArduinoModbus, y me da errores de direccion.
Alguien puede ayudarme a ver que hago mal?

Os subo ambos codigos y los errores que genera

Programa que funciona bien

[RTU]>Tx > 10:33:06:257 - 01 03 00 00 00 04 44 09
[RTU]>Rx > 10:33:06:273 - 01 03 08 00 00 00 00 00 00 00 00 95 D7

#include <modbus.h>
#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>


#define Entrada0  A0
#define Entrada1  A1
#define Entrada2  A2
#define Entrada3  A3

modbusDevice regBank;

modbusSlave slave;

void setup()
{

  
  regBank.setId(1);


  regBank.add(40001);  
  regBank.add(40002);  
  regBank.add(40003);  
  regBank.add(40004); 
 

  slave._device = &regBank;  


  slave.setBaud(9600);   
  }

void loop()
{
 
  regBank.set(40001, (word) analogRead(Entrada0));
  regBank.set(40002, (word) analogRead(Entrada1));
  regBank.set(40003, (word) analogRead(Entrada2));
  regBank.set(40004, (word) analogRead(Entrada3));
  
    
  slave.run();  
  }

Programa que funciona mal y devuelve error de direccion

[RTU]>Tx > 10:31:12:301 - 01 03 00 00 00 04 44 09
[RTU]>Rx > 10:31:12:316 - 01 83 02 C0 F1
Sys > 10:31:12:316 - Error : Illegal data address

#include <ArduinoModbus.h>


#define Entrada0  A0
#define Entrada1  A1
#define Entrada2  A2
#define Entrada3  A3


const int numCoils = 10;
const int numDiscreteInputs = 10;
const int numHoldingRegisters = 10;
const int numInputRegisters = 10;



void setup()
{

  
  ModbusRTUServer.configureCoils(0x00, numCoils);

  ModbusRTUServer.configureDiscreteInputs(0x00, numDiscreteInputs);

  ModbusRTUServer.configureHoldingRegisters(0x00, numHoldingRegisters);

  ModbusRTUServer.configureInputRegisters(0x00, numInputRegisters);
  
  Serial.begin(9600);
  while (!Serial);

  if (!ModbusRTUServer.begin(1, 9600)) 
  {
    while (1);
  }
}

void loop()
{
  ModbusRTUServer.poll();
  
  ModbusRTUServer.holdingRegisterWrite(1,analogRead(Entrada0));
  ModbusRTUServer.holdingRegisterWrite(2,analogRead(Entrada1));
  ModbusRTUServer.holdingRegisterWrite(3,analogRead(Entrada2));
  ModbusRTUServer.holdingRegisterWrite(4,analogRead(Entrada3));

  
}

Muchas gracias por la ayuda.