Dart Score board

I'm driving myself a little crazy I think.

I've been trying to work on creating a dart scoreboard using Sparkfun 6.5" large 7 segment displays.

I have 6 of them (2x set of 3) to display the score for a 2 player game.

I wanted to use an arduino connected to a webpage or app, the player can enter the score they got on throwing darts into a keypad (tablet/phone) and it would do the math to subtract from the current score. a reset button to go back to 501 as well.

is this something that anyone wanted to help with?

Let me know, hopefully can work something out.

Quite trivial to do with a keypad attached to the Arduino that also attaches to the scoreboard.

Quite straightforward to do with a Bluetooth connection to the phone, as you can simply pair a phone with the scoreboard and then run a simple app on the phone that allows you to enter the score, sending it over the Bluetooth to your scoreboard.

Getting seriously harder (both for programming and actual use) if you want to put the Internet in the mix. You have to have an app on your phone, that somehow knows how to find your scoreboard. Probably easiest if you have your router assign a fixed IP on your local network to the scoreboard, and then use that IP to have your phone connect to it.

In any case there'd be two independent, identical units. Or three. Or four. Or however many players you want to entertain.

An ESP8266 for example can create an access point which a smartphone etc could access. That does not involve the internet, but is also not trivial to program.
The user could start by roughing out a web page in HTML which would form the user interface to the score board.

Part of the problem is the user - to make someone preger using the electronic thing over to the traditional blackboard you have to make it easy to use.

Requiring your phone to connect to a specific WiFi network (that of the scoreboard), then entering an IP address for URL (a captive portal would make this part easier) is not the best in user friendliness. Though it's admittedly less bad than expecting them to install an app just to play a game of darts with you.

Requiring users to connect to the device as a WiFi network, may be practical.

There is an alternative. If the device is in user where there is already a router, the device could sign on to the local network.

I haven't done this with the ESP8266. I have done it with the Yun and Linino. I assume the choices are the same.

DannySwarzman:
There is an alternative. If the device is in user where there is already a router, the device could sign on to the local network.

Do you know an EASY way to have the mobile phone actually find the ESP on the network? Especially when there are multiple available?

Personally, I despise most app/phone/tablet -> hardware interfaces. Unless you really need mobility and only very occasional connection, it's preferable to have the UI built into the device. This use case is a clear example of just why I think that.

You kids get off my lawn now, I'm going back in the house!

I also don't like it.

Similar situation: just the other day some startup contacted me, asking if I wanted to place my events on their platform. iOS app only - I don't have an Apple device. "Android support is coming soon!" they say happily. Well, still a showstopper to me, why would I want to install an app? Just give me a web site and I will see what you have on offer. I don't like having to jump through hoops - such as installing single use apps, or apps of something I don't even know whether it's interesting.

That said, in another project I'm using tablets for user interface. The tablet is part of the project: the requirement was touch screen interface, and then an Android app is the easy way of implementing that. The project is based on an ESP8266, in host mode, tablet connects to that specific network, and they can happily exchange information as the tablet builds up the nice graphic UI, deals with touch, etc.

I'm still looking at a convenient way of offering client an app they can install on their phone, and connect that way. Finding the project on the local WiFi network is the problem. Not likely they can be issued a static IP, and I have no idea how to find them other than a blunt network scan, trying to connect to all IP addresses in the subnet until the expected response is received. And risk turning the IT manager into a BOFH.

I'm not anti-tablet at all.

Far from it: I work with wireless embedded devices daily. What I am against is poorly thought-out UI's where the sentiment is "we'll just use an app for that" with no consideration for whether or not it's a good idea. All other things being equal, I prefer a web interface because it keeps all the control on the device side and anyone with a browser can connect.

Tablets make great user interfaces: they are cheap, easy to replace and highly programmable. But as you mention, the thing they're connecting to can also have issues with discoverability.

If you need to use WiFi to communicate and the device also has Bluetooth or BLE, then perhaps you can use the Advertising Data as a Service Discovery method where you broadcast the IP of the device in the Bluetooth advertising messages. Otherwise, if the device can have its own wireless network, perhaps it can encode its identification in the SSID e.g., "DEV001" and your application can do a network scan for all SSIDs and filter by "DEV"

The disadvantage of BT or BTE is that you need an app.
The disadvantage of having the scoreboard act as an ad hoc network is that the user needs to connect to it.
The disadvantage of having the device act as a client to the local network is that there needs to be an extra step of logging on to the device in order to have the device log on to the local network.

If the scoreboard is used where there is a local network for use by clients or the general public, it may be worth the extra effort to have the device be the client to the local network.

If there is no local network in place or if the scoreboard is likely to move around, and there is only one score board, creating an ad hoc network wins hands down. The user instructions are:

  • Connect to network "ScoreBoard" using password "password"
  • Put the scoreboard IP into your browser

Earlier tonight I was reading about mDNS - a way of finding the scoreboard by domain name as long as you're connected to the same router (or are on the same LAN), without the need of registering this name or having a fixed IP or so. Very interesting. It makes use of the .local TLD.

Doesn't take all the pain away but makes it a bit less painful for a one-off thing.

There are quite a few Service Discovery Protocols and various flavors of ZeroConf (Bonjour) in wide use these days so it's pretty much a solved problem if your device has the horsepower to run the protocols.

Still doesn't change the fact that this is not an application that should require an app :slight_smile:

cedarlakeinstruments:
There are quite a few Service Discovery Protocols and various flavors of ZeroConf (Bonjour) in wide use these days so it's pretty much a solved problem if your device has the horsepower to run the protocols.

Still doesn't change the fact that this is not an application that should require an app :slight_smile:

Do these services mean that the user can type "DartBoard" or something like that into a browser address? Does something need to be installed on the client device first?

DannySwarzman:
Do these services mean that the user can type "DartBoard" or something like that into a browser address? Does something need to be installed on the client device first?

it's related mDNS, some library included on ESP side, lets you assign a local DNS name for it's IP, yeah you type in ''DartBoard" into your address and you get pinged , but currently works on Android devices so far, i try this every time