ETCNomad control with arduino UNO

Hello there!

At the university I was trying to develop a little version of the lighthack box 1. My idea was to have at first just one button, which can have any use i could need. I have been trying to get arduino to connect to the nomad but I can't really figure out what am I doing wrong.

I have OSC RX enabled on the etc and also Log UDP on, whic I don´t really know what this does. The IP Adress and the port is also correct i think.

I cannot make the connection between a simple pulsator on my protoboard, to fire a "go to cue 1" through an "if" conditional.

If someone could help me that would be amazing!

Thanks so much,


#include <Ethernet.h> // Incluimos la librería Ethernet
#include <EthernetUdp.h> // Incluimos la librería UDP
#include <OSCMessage.h> // Incluimos la librería OSC
//#include <Keypad.h> //incluir libreria para manejar el teclado del ordenador

//asignar botón al pin 5 del arduino
const int botonpin = 2;
//el estado del boton lo añado luego

// Definimos la dirección IP y el puerto de la consola Nomad
IPAddress nomadIP(192, 168, 0, 17); // Dirección de loopback en el mismo Mac
const unsigned int nomadPort = 8000; // Puerto OSC predeterminado de la consola Nomad

// Definimos el objeto UDP
EthernetUDP Udp;

void setup() {

  //configurar pin como salida
  pinMode(botonpin, INPUT);
  // Inicializamos el puerto serie para mensajes de depuración

  // Inicializamos la conexión Ethernet y el objeto UDP
  byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
  Ethernet.begin(mac,nomadPort); // Reemplaza 'mac' con la dirección MAC de tu placa Arduino

  //ver cual es el puerto y el ip
  Serial.println("Nomad IP: " + String(nomadIP));
  Serial.println("Nomad Port: " + String(nomadPort));

  //pinMode(botonpin, INPUT);

void loop() {

  // 1) el boton 1 es el que escribe go to cue 1.
  //INICIAR LECTURA ESTADO BOTON para detectar el estado del boton
  //Leer estado boton
  int estadoBoton = digitalRead(botonpin);
  //inicio if
  if(estadoBoton == HIGH){

    // Creamos un mensaje OSC. seleccionar un canal concreto
    OSCMessage selectChannel("/eos/outgoing/goToCue/1");
    //selectChannel.add("1"); // Puedes agregar diferentes tipos de datos (int, float, etc.) al mensaje según sea necesario
    //Hay qeu agregar el contenido del mensaje osc al paquete utilizado
    // Enviamos el paquete con mensaje OSC a la consola Nomad
    //Udp.beginPacket(nomadIP, nomadPort);
    // Borramos el contenido del mensaje para reutilizarlo en la siguiente iteración del bucle

    Serial.println("Nomad IP: " + String(nomadIP));
  // Esperamos un tiempo antes de enviar el siguiente mensaje (opcional)
  delay(1000); // Espera 1 segundo antes de enviar el siguiente mensaje, ajusta según sea necesario

  // 2) El botón 2 esta para poner el canal 34+35+36
  //Mensaje OSC para decirle a la nomad de poner el canal anterior a full
  OSCMessage setIntensity("/eos/user/1/Intensity/Full");
  Udp.beginPacket(nomadIP, nomadPort);
  setIntensity.empty(); //este funciona como un clear

//correccion chat gpt
/*Udp.beginPacket(nomadIP, nomadPort);