Purpose of 'Acknowledge' Command

I have a question about the acknowledge command sent by the server to the Arduinos. Why is this ‘super important’? I’m asking this because I need to execute commands several times without an acknowledge command.

My goal is to have an eVOLVER that has a bright LED for growing phototrophs. The problem I’m trying to solve is that increased LED brightness causes increased OD measurements, eventually maxing out the OD sensor and producing NaNs.

So far I’ve got a working system to turn off the LED when taking OD, which required a somewhat major rewrite of one of the Arduino’s codes. I’m adapting this code I received from Brandon. I wrote a simple explanation of how I changed the code here.

Thanks for the help!

Hey Nate,

The ack is a way of doing a 3-way handshake between the RPi and the microcontrollers. This is there so that the RPi can determine is something bad happened or if a command was not properly received by the arduino. Why does this get in the way of what you need to do?

I will say we probably could do better with the comms error handling beyond just posting into the logs on the server side. Eventually this information will be conveyed to the DPU so that the user can decide what to do when a comms error occurs and debug the situation.


1 Like

I don’t think it gets in the way, now that I know what it’s doing. The handshake isn’t relevant if what we’re doing is fully on the Arduino side, so there’s no need to worry.

By fully on the Arduino side I mean I’m having the Arduino turn off the light when it’s taking an OD. There’s no RPi commands involved.