Electronic Darts Board to PC

Update 2015-01-29: The program is now written in XNA and all of the updates regarding this project will be posted on the google code page

I recently bought this electronic darts board (catdart devil) and decided to hook it up to my PC. I had seen a few forum threads where people were trying to do the same thing. Most tried to solder the pins from the dart board to a keyboard chip but it didn’t really seem to work.

I decided to use a breadboard arduino similar to this one and finally got it to work :P. These two (1, 2) videos did a good job explaining how it’s supposed to work :)

Here’s the code I’m running on the arduino:

void mainLoop()
{
  for(int i = 0; i < 8; i++) //Loop through all outputs
  {
    reset();
    digitalWrite(outputPins[i], HIGH);

    //Loop through all inputs
    for(int j = 0; j < 10; j++)
    {
      if(digitalRead(inputPins[j]) == HIGH)
      {
        Serial.print("H: ");
        Serial.print(inputPins[j]);
        Serial.print(", ");
        Serial.print(outputPins[i]);
        Serial.println("");
        delay(1000);
      }
    }
  }
}

void reset()
{
  for(int i = 0; i < 8; i++)
  {
    digitalWrite(outputPins[i], LOW);
  }
}

Heres a few images:

Breadboard Arduino

And here’s a screenshot from the WPF application i built to keep track of the scores and statistics. It currently supports 301, 501 etc up til 1501 and count-up. I’m working on a cricket mode as well :)

WPF Dart Application

The main reason I wanted to build my own application was to add support for the awards that show up when you hit a hat trick (3 in the middle), low ton (a score of > 100) etc that I saw on the darts machines in Japan. I’ve only been able to find the sound effects so far thou. You can get the sounds here, It’s from the Phoenix Darts Machines that they had in most dart bars.

If you’re interested in the source code or any other details, please let me know!

Maybe I’ll build another one and add support for webcam and online play :)

 

Tags: ,

28 Responses to “Electronic Darts Board to PC”

  1. Andreas Säterås says:

    You have did an awsome job!

    And I’m very interested in the source code.
    My plan is to do your project as you did and I have a few thoughts of creating an application for android/iphone so you can track the result in the mobile aswell.

  2. admin says:

    Hehe, thanks :) This is still a work in progress, but I’ll make an update on the software I’m running on the PC soon.

    I’m also trying to add a few buttons to the circuit, but since all of the pins of the chip I’m using are taken, it has become a bit of a problem 😛 Think I’ll be able to solve it using multiplexing thou…

  3. Joshua Bogden says:

    i just bought an older arcade dart board and i am looking to add a screen to it and make my own scoring program, i would love to look at your code to see how you did this to better understand how the boards work, and how to design my own program.

  4. admin says:

    I put up the code for the dartboard recently on: http://code.google.com/p/martinpersson-darts/

    If you’re planning on using a virtual com-port, then you could basically use it as is. The most interesting part is probably how the messages from the dart board get parsed (method ParseScore, found in SerialManager.cs).

  5. Joshua Bogden says:

    do you have a wiring diagram on how you wired the board to the arduino, it would be very helpful for my project.

  6. admin says:

    Not exactly a wiring diagram, but this might help? http://www.martinpersson.org/wordpress/2011/02/dartboard-circuit-layout/

  7. Joshua Bogden says:

    That helps a lot thank you very much!

  8. Pedro Gonçalves says:

    Hi.
    Im very intereseted to do a project like this one, but i have question how do you conect the matrix from the dartboard to the wires how will connect on the board of arduino, sorry about this questions but im a newbie on this kind of projects with arduino, by the way what is the best software can i used on the pc play cricket? Thanks for your attention

  9. admin says:

    I’ve soldered the connectors to a experimentation board, then added connectors from that board which goes to my breadboard pcb with the arduino. As for software, I have no idea if there is anything available which communicates through serial like my board does so I think you have to write your own software.

    Sorry for the bad quality :) :
    pic1
    pic2

  10. Pedro Gonçalves says:

    Hello friend. I have almost the project done, but i have some doubts. In your arduino code i see that you have this:
    //board setup
    pinMode(boardInPin, INPUT);
    pinMode(boardOutPin, OUTPUT);

    Why one is input and the other are output?
    If in the multiplex are connected all the selector cables.

    How i send voltage to the matrix?

    I test the configuration on the breadborad connecting the independent inputs/outputs from the first multiplex one wire at 5v and other from the second multiplex to the 5v and the arduino recive the wires connected at the selector cables, but i have all multiplex connected as imput.

    what i have wrong?

    Thanks
    King regards

  11. Jackson Yu says:

    This is project still alive?

    I have recently started my Dartslive2 career and acquired a Dartslive-100S in the hopes of doing the same thing, however with much primitive methods.

    I also got hold of the dartslive2 software as used by the machines, including some of its sounds and movies. But obviously does not start as the required hardware is not detected.

    I dont have much experience with Arduino nor software programming so I am hoping I could get some guidance here.

    But I am hoping I could get the same familiar scoring experience at home to practice on…

    Can contact your somehow?

  12. GnobarEl says:

    Hi,
    I’m starting a project similar to this one, can you, please, post some pics of the wire connections on the dartboard?

    Thanks for your support.

  13. […] and create games with your own rules. That’s a pretty awesome idea, and it’s been done before. It will be a way-point on our […]

  14. Jake says:

    Awesome job! I’m interested in porting this to linux using monogame and running it on a Raspberry Pi 2 with Arduino. I’m pretty new to programming but do you think it would be a realistic goal? Would you mind if I adopted your code on your Github and try it?

    Also, please post a video of the gameplay on your youtube channel when you get a chance. I’d love to see it in action. It looks like a beautiful interface!

    Thanks.

  15. admin says:

    I’ve been thinking about porting it through monogame and running it on a raspberry pie too. I’m not sure it would run smoothly but it would be pretty awesome if it did. I don’t know how much work it would take, because I haven’t worked with mono before. Feel free to mess around with the code if you want to. I’ll post a video when I get some time on my hands.

    There are a few newer screenshots on the github releases page: https://github.com/marpe/XnaDarts/releases

    Regards, Martin

  16. matteo says:

    Hi,
    are an Italian boy and after searching every where I finally found a decent project.
    Premise, not chew English well so I will entrust to google translator. : P
    Having an old machine pub I decided to take it apart and try this project.
    I disassembled the whole machine leaving only the center Cyberdine (http://www.cyberdine.hr/wp-content/gallery/rezd/01.jpg) to which I linked arduino leonardo (http://arduino.cc/en/ Main / arduinoBoardLeonardo).
    Now, by starting the executable Arduino communicates without difficulty but wanting to put a touch of my tried and also the source code in visual studio 2010 just try debugging tells me that I can not start due to lack of file XnaDartsTest.dll.
    not knowing how to use good visual studio, there is some advice that I can have?

  17. admin says:

    The XnaDartsTest project contains a couple of unit tests. It’s included in the source code but it is not required in order to run the application. It’s probably just some build settings you need to tweak but I’m not sure how to set it up.

  18. Matt says:

    Great project, would love to build an interface like yours to work with Arachnid dartboards. It is a 19 pin matrix and beyond my current skill level to build the multiplexer. If you build another more in depth wiring schematic that might be something I could work off of.

  19. squirrel says:

    i would love to see a full wiring diagram on this. hell id even donate $100 bucks if you would make a step by step tutorial

  20. Poilou says:

    Hi Martin !

    We’ve realized an open source version of your project !
    It’s powered by arduino, and it’s named pyDarts.
    The wiki on sourceforge explain how to convert your old electronic dartboard to a pydarts compatible one, and the pydarts software is ready to download and open source.

    The game supports Cricket (Crazy option, Cut throat, etc), 321 Zap, 301, 501, … , and more !
    There is even a network mode to play with your friends abroad.

    It’s written in python and works under Linux and windows.

    Because it require a few electronic skills, we plan to sell converted darts board on demand.

    Check the website !
    Cheers to all !
    http://pydarts.sourceforge.net

  21. Ludovic says:

    Very nice project and software.
    What a pleasure to have the same awards than on dartslive machine. I have test your software with an arachnid galaxy II machine (8*11 darts matrix) and it works with little adaptation on arduino uno.
    I will follow updates on github because actually I am able to play the develop_monogame but I am in a hurry to play phoenix machine games like in dart bars like “hyper jump” at home
    I will post on website http://barbuscup.webnode.fr/
    adaptation to work with arduino uno and arduino program
    Regards

  22. admin says:

    Hi,

    Interesting project. I will check it out once I have time. I have started converting my XNA project to monogame so it will run under Linux as well. There is a monogame branch in the github project:
    https://github.com/marpe/XnaDarts/tree/develop_monogame

  23. filippo says:

    hello, its design and extraordinary compliment.
    you have any questions for you.
    3 days I’m going crazy with segments, I’ll explain better.
    I managed to make it work on a professional darts disc similar to Cyberdine but after mapping all the segments while playing the crazy number and are not at their place. if I press for example the 20, he gives me other numbers. how to solve this problem? and you can have a more detailed outline on the 4051bp-on?
    when using an Arduino and rev3 3 4051bp components.
    please let you help us? I’m also willing to donate something. Thanks in advance

  24. filippo says:

    please insert master out/double in 😂

  25. Ruckmess says:

    Hi! Are you planing adding online play and webcam soon?? It’s pretty amazing what you have done and how it looks like an phoenix dart machine!! I play many times, and for what I have seen until now… It is amazing.

    I am very interested in adding the online and webcam to play with friends, so I will be waiting your answer.

    Thank you again,

    Ruckmess

  26. admin says:

    Hi. I think online play will require a lot of work and there are other features which are more important. Unfortunately I haven’t had any time to work on for quite a while…

  27. admin says:

    I think master out/in is next on the todo list :)

  28. admin says:

    Hi, sorry for the late reply. Please join https://gitter.im/marpe/XnaDarts for further discussions.

Leave a Reply