Creating a laser timing system for sports

I'm looking to create a laser timing system for tracking sprint speed. I'm new to using Arduino so I want to make sure I am doing things correctly.

I know I need 4 total boxes, two at the start, two at the finish. The starting box will have one Arduino with this photoelectric switch receiver and the other side with a 9V battery, this buck converter, and the photoelectric switch transmitter. The finish will have the same set up but the finish sensor with the Arduino will also have a 16x2 LCD screen that output the finish sprint time.

I have already created a small model using one Arduino, a breadboard, and two IR photoelectric switches (but these only have a distance of 20", I will need about 36" so I am hoping the new photoelectric switches will work well!). My small scale model seemed to work well and I also created a recall button able to pull up the past 3 sprint times.

Now I'm looking for a way to connect the two Arduinos so that they can communicate with each other. So when the starting beam is broken, it will tell the finish Arduino to start the time, and when the finish Arduino beam is broken, it will then stop the time and subsequently reset the system.

Would an NRF24L01 do the trick to have the two Arduinos communicate with each other?

Additionally, would a 9V battery be enough to power the Arduino, the photoelectric sensor, LCD, and the NRF24L01?

I would also like to eventually add in a more aesthetic on/off switch, LED that indicate that the start/finish sensors are aligned. Finally, my plan is to use basic project boxes for now until I could get some more official boxes 3D printed. I also know my IR transmitters/receivers will most likely need to be recessed into the boxes.

To determine the right battery, you need to measure or calculate the worst-case current for each load. Then, determine how long the system needs to operate, making sure to allow some extra time as a buffer. With that information, you’ll know what the battery needs to supply.

Depends on the distance. It should work for 100m.
Also, you could consider small 5V power bank instead of 9V batteries for all of your boxes.

I appreciate the advice, I will look into the power requirements more!

Perfect. I typically only place the start and finish gates 30ft (10 yards) apart.

Looking through other topics, I think accurate time keeping will be a challenge. While I would like the time to be relatively valid/accurate, I would care more about reliability between sprints. I think I will need to look into the accuracy and viability of having the start Arduino communicating to the finish Arduino and then producing an accurate sprint time. I'm assuming delay would be from the start Arduino processing the start beam break, sending that signal through the NRF24L01 to the finish Arduino NRF24L01 and then processing the "start timer" command. I'm assuming I could account for a delay (if I could even figure out what that was). Again this is a side project so while accuracy would be nice, I would care more about the test re-test reliability of the timing system.

I would really hate to wire these together.

Depends what accuracy you need?
Also what Arduino board you use...
You could synch the arduinos before you start triggering sensors, at that point you don't need to count on wireless transfer accuracy anymore.

Then you need to establish the communications long before the need and be able to stop the race when communication problems occur.

Ideally, I would output second to the hundredth of a second so less than 10 milliseconds in accuracy would be great.

I am currently using an Arduino UNO R4 WiFi but would like to pursue a smaller form factor in the future.

Just because I'm still learning, how would the start Arduino signal to the finish Arduino to start the timer if they are not communicating wirelessly?

10ms doesn't sound so difficult.
There are many options to synch time. Even R4 wifi NTP internet time might be accurate enough. Or you could give them a wired "kiss" before placing them apart. Or make NRF24 synch signal loopback to ensure that they are within 10ms. If money doesn't count, dedicated module for GPS time would be very accurate. Just to give few examples....

Okay, would it then be smart to sync the Arduinos' clocks at their initial connection and have the start Arduino send a timestamp to the finish Arduino? Then the finish Arduino can subtract the timestamps (and add in transmission delay) to give me the final time?

Could I also run an experiment to test the average transmission delay between the two Arduinos at my normal separation distance of 30 feet? I guess if that would work I could find transmission delay at various distances and take a rougher average. Again I need to relatively accurate but not incredible precise.

Do not confuse the clock time with communications reliability. Without reliability that produces no errors over longer than the time of the longest race, there is no reason to go on.

Simplified logic to synch time wirelessly could be:
Arduino1 starts counter and sends start message to Arduino2 which starts counter and sends confirm to Arduino1. Arduino1 verifies if this loopback is done within X ms and confirms if synch is within the tolerances.
When in synch, they can start with sensors.
Then they can count on timestamps, even in the case they face wireless communication delays/problems later on. Accuracy depends on arduino boards timekeeping, some are very accurate, others less, but for some minutes it should be accurate enough anyway.

For quite a few years my late company built and maintained race timing products for a company named TIMETECH. They sold race timing equipment in North America and some around the world. At no time did they ever have any timing that was NOT hard wired together. Well, just one and that was a microphone to detect the race starting gun. Now days, even the gun is electronic connected.

I learned many years ago during a Pinewood Derby (Scouts) that no one is overly concerned with absolute accuracy, as long as everyone is timed using the same clock. @Paul_KD7HB, make sure to wire the connections—don’t rely on radio signals since all kinds of interference can cause issues. Also, have a redundant system in place; one will likely fail at some point.

Keep this in mind:
Arduinos are designed for experimentation and learning, often used with breadboards and loose wires, which can become unreliable if vibrated. They are not built for harsh, dirty, or electrically noisy environments commonly found in industrial, automotive, or other commercial applications, making them unsuitable for such settings.

To ensure we can provide the most accurate assistance, please include detailed information about your setup. Specify the exact board, shield, wiring configuration, and power sources you are using. An annotated schematic is ideal, as it provides a clear overview of your setup, but be sure to also include links to the technical specifications of your hardware components.

Before posting your code, please review the forum guidelines and use code tags for better readability. Also, provide links to the technical information about your hardware, and include a preliminary schematic that shows all power, ground, and connections. For additional guidance, you can refer to this link: Useful Links and Tutorials. Note that in this context, breadboard diagrams are not considered proper schematics.

I know maybe an old post, but theres modules of nrf24l0 with 15km range.. had be enough for a 10km race