Building a Robotics fight control box (RFCB) Part 1: Design goals and buttons

For years, I have been wanting to design a simple control box that starts and stops fights in the Dutch Robot Games arena. The current system works, but it is far from great. The arena marshal has to interact with the competitors, manage audio controls, handle light controls, and keep an eye on the fight. Niels, the main arena marshal, has been doing a great job of this forever, but I wanted to make his life easier.

Wait, it’s all interfaces ?

Oxford Languages defines an ‘interface’ as ‘a point where two systems, subjects, organizations, etc. meet and interact.’ Essentially, the RFCB serves as an interface with several systems and humans. Let’s break it down really quickly:

  1. Arena Marshal
  2. Competitors
  3. Sound system
  4. Light controls
  5. Audience (indirectly)
  6. Arena (to control a pit or other arena effects)

Number 1, the Arena Marshal, is the most important interface. Since this person controls the RFCB, if this interface is not flawless, all others might as well be considered useless. So, how do we interface with this human in the most effective method? Well, we are still waiting on some form of neural implants, but in the meantime, we can use traditional methods like displays as an output to the human and buttons as an input from the human. We might even add sound outputs into the mix since we also need an interface with the sound system.

There are other interfaces, like tactile feedback, but for the most part, that’s not that useful in this application, and don’t get me started on voice recognition or gesture control. However, I did consider a bubble wrap popper interface for a brief moment, but let’s not go there.

A touchscreen would also be a very nice and flexible solution. I considered this, and others suggested it, but it has several disadvantages. A basic screen is pretty fragile, and you can’t really see the screen in direct sunlight, but these problems can be solved by throwing money at it and getting professional ‘industrial’ or even ‘military-grade’ screens. However, I’m frugal (Dutch) and this is a hobby, not a commercial application. But even if you spend the money for a bright and indestructible screen, there is still one major downside: the human controlling the screen has to look at the screen to see where the button is that needs to be pressed. Let’s be honest, for all its flaws, the human body does have an amazing ability to find any button with your fingertips, even when you are not looking directly at it. Sure, pure muscle memory will solve this issue in the long run, but we are not running fights all day every day. And let’s not frustrate the human controller, or even the competitors. So, buttons it is!

Easy, just get some buttons right?

Of course, it’s never this simple. I haven’t really mentioned all the design goals and objectives so far, and it’s important to have those clear before buying a button.

So, the problem I am solving is: We need a simple way to control the start and end of fights in our Dutch Robot Games arena.

Some constraints I have are:

  • Cost: It must be affordable (again, I am from the Netherlands).
  • Ergonomics and Usability: It must be an improvement over our current setup.
  • Portability: We need to take this to events, so it must be lightweight.
  • Size: It needs to be next to the arena marshal but also must not obstruct large parts of the arena for the audience.
  • Robustness: We are never really careful with our arena equipment; after all, we build things to destroy other things as a hobby.
  • Cool Factor: While it needs to be functional, I also want it to be cool.
  • Maintainability: The components used must be easy to maintain, replace, and commonly used by makers. Easy spares are a must. Also, I love to fully open-source the design when it’s done so others can use it, build it, or get inspired by it.
  • KISS (Keep It Stupid Simple): The design should be straightforward and simple
  • Challenging: This one might be stupid for a design, but i also want to challenge myself while designing this, its a hobby project and i want to keep it interesting and not be in my comfort zone while making this. When i spend to much time in my comfort zone, i will lose interest and will never finish. But also, its a thin line with being outside the comfort zone, and the project becoming to complex. I will walk this line until the end! Heck i even writing about this project on this page, no idea why but it keeps me going.

Lets find that perfect button!

I have used all kinds of buttons throughout my life; in fact, I have at least 40 years of button experience at this point, and one might even say I am somewhat of a button expert… All jokes aside, the design constraints we have set for this project are important here. All constraints affect the button choice we make. Most buttons are already ergonomic, requiring little effort to press unless they are too big or too small. I do want them to have an LED inside so they can light up. This feature is important because part of the interface from the RFCB to the human is to notify which buttons are available to control, depending on the stage of the control flow; not all buttons are enabled at all times.

Having an LED in the button eliminates a chunk of the available options. The next consideration is size: they can’t be too small, as normal fingers will be pressing them, and they can’t be too big; we don’t want a huge panel of buttons. At this point in the design, I haven’t really discussed how many buttons we need in total for a good interface. However, since we need at least a way to start and stop a fight, let’s start with those two. Next, we want to be able to turn on lights even when there isn’t a fight running. So, maybe another two for lights on and off. And let’s add two more for opening and closing an arena pit. More on this later in the design; for now, we estimate probably six buttons. With that number in mind, we can consider the total space needed for the buttons.

So, we know we need six in total, and they need to have some sort of LED in them. Let’s add robustness into the mix. I’m not worried about someone pushing the button so hard that it will break. Sure, we can find those types of buttons on eBay, but I’m more concerned about the odd bug the human control function has of accidentally bumping into things or even pressing a button too soon because the finger is already in place and the brain sends out a weird command to twitch that finger or something like that. Yes, I need a button that can’t be pressed by an arm that happens to move in a weird way. This can cause severe problems! In my opinion, this eliminates most arcade-style buttons. I know they still need a decent amount of force to be activated but, and again this is my opinion, they are too easy to be pressed by bumping into them.

We’ve eliminated a lot of buttons and at this point, most that are left are industrial design buttons. Luckily, AliExpress helps with the cost aspect. This narrow selection does affect the maintainability a bit because the part is not THAT common anymore, but I am willing to sacrifice that part as I expect these buttons never to break down anyway with the amount they will be used.

The last part I added for one reason only: I would like it to be COOL. The LEDs needed to be RGB. There is hardly any practical use for this, to be honest. I can write down several justifications I came up with for why it needed RGB LEDs, but in the end, it’s just cool.

The addition of RGB LEDs significantly narrowed down the available options. I was hoping to find RGB with some type of addressable system like the ws2812b strip, but they don’t seem to exist in a normal price range. So, I ended up with this robust, affordable, compact, ergonomic button with an RGB LED:

It might feel like i spend a considering amount of time on the button, and i feel like explaining. My workflow for building stuff like this, has me thinking about the problems / issues with the design for a long time before starting designing. I eliminated most buttons in my mind even before ever picking the right one, maybe even making up design goals to justify the button’s i picked in the end.

Up next : Display, audio and arduino