# New Prisma Puzzle Timer with Stackmat Gen 3 support



## Computer Cubing (Apr 4, 2015)

Hello everyone this is Computer Cubing,

Here is a new version of Prisma Puzzle timer that works with the Stackmat gen 3!
Credit to the original author, Walter, who published the original project at https://bitbucket.org/walter/puzzle-timer/

To support the Stackmat Gen 3, I have created a new menu option in timer trigger called Stackmat gen3.
Click on that to connect your gen 3 timer. The original code for the gen 2 timer has been left in place.
The cable is still all the same from connecting the gen 3 timer, 3.5 to 2.5 audio cable. 

Anyway, here is the link to the new version of Prisma Puzzle Timer in GitHub

https://github.com/phillip-hayes/PrismaPuzzleTimer/blob/master/bin/PrismaPuzzleTimer_v1.0.zip

To use the timer, download the above zip file, unzip the contents to a directory on your computer, and then run the PrismaPuzzleTimer.bat script
This version of the timer, like the original, requires java to be installed on your computer

For those who like to develop their own software, the integration to the Stackmat Gen 3 has been abstracted into a separate library that could be used with any java project. 
This API library has been published as a separate GitHub repository. Please feel free to reply on this thread if this is of interest.

Be sure to check you my Youtube channel Computer Cubing. I make unboxings, reviews and more!

https://www.youtube.com/channel/UC8ifYOdnxoqnLqAYKMxVjzg


----------



## Chree (Apr 4, 2015)

Thank you!


----------



## Berd (Apr 4, 2015)

Yea! This is what I needed! Thank you!


----------



## KimLan (Apr 6, 2015)

I still haven't been able to get my stackmat to work with Prisma Puzzle Timer. I can only get it to work with CalCube Timer, but I would like to get it working with this too. 

It doesn't seem to be reading anything from my stackmat (gen 3 pro). Any ideas?

Thanks!


----------



## mustardboy (Apr 7, 2015)

Computer Cubing said:


> Hello everyone this is Computer Cubing,
> 
> Here is a new version of Prisma Puzzle timer that works with the Stackmat gen 3!
> Credit to the original author, Walter, who published the original project at https://bitbucket.org/walter/puzzle-timer/
> ...



I am having trouble connecting my Gen 3 Stackmat to Prisma. I use Windows 8. The microphone input is definitely being received I just get this flood of errors when I start timing:

C:\Users\Ben\Downloads\PrismaPuzzleTimer_v1.0>java -jar PrismaPuzzleTimer.jar -c
lasspath .;lib\*
Apr 06, 2015 6:33:36 PM au.com.emc.cubing.stackmat.StackmatManager start
INFO: Starting Stackmat gen 3 manager
Apr 06, 2015 6:33:36 PM au.com.emc.cubing.stackmat.StackmatInterpreter initializ
e
INFO: Initialising stackmat gen 3 interpreter
Apr 06, 2015 6:33:36 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
INFO: Starting Stackmat background thread
Apr 06, 2015 6:33:50 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
SEVERE: Detected error processing stackmat signal: null
java.lang.NullPointerException
at au.com.emc.cubing.stackmat.StackmatInterpreter.readLine(StackmatInter
preter.java:172)
at au.com.emc.cubing.stackmat.StackmatInterpreter.doInBackground(Stackma
tInterpreter.java:316)
at au.com.emc.cubing.stackmat.StackmatManager$1.run(StackmatManager.java
:272)

Apr 06, 2015 6:33:50 PM au.com.emc.cubing.stackmat.StackmatManager stop
INFO: Stopping Stackmat gen 3 manager
Apr 06, 2015 6:33:50 PM au.com.emc.cubing.stackmat.StackmatManager start
INFO: Starting Stackmat gen 3 manager
Apr 06, 2015 6:33:50 PM au.com.emc.cubing.stackmat.StackmatInterpreter initializ
e
INFO: Initialising stackmat gen 3 interpreter
Apr 06, 2015 6:33:50 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
INFO: Starting Stackmat background thread
Apr 06, 2015 6:33:50 PM au.com.emc.cubing.stackmat.StackmatInterpreter changeLin
e
WARNING: Detected mixer line unavailable
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.
0 Hz, 8 bit, mono, 1 bytes/frame, not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Sourc
e)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at au.com.emc.cubing.stackmat.StackmatInterpreter.changeLine(StackmatInt
erpreter.java:151)
at au.com.emc.cubing.stackmat.StackmatInterpreter.doInBackground(Stackma
tInterpreter.java:298)
at au.com.emc.cubing.stackmat.StackmatManager$1.run(StackmatManager.java
:272)

Apr 06, 2015 6:35:09 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
SEVERE: Detected error processing stackmat signal: null
java.lang.NullPointerException
at au.com.emc.cubing.stackmat.StackmatInterpreter.readLine(StackmatInter
preter.java:172)
at au.com.emc.cubing.stackmat.StackmatInterpreter.doInBackground(Stackma
tInterpreter.java:316)
at au.com.emc.cubing.stackmat.StackmatManager$1.run(StackmatManager.java
:272)

Apr 06, 2015 6:35:09 PM au.com.emc.cubing.stackmat.StackmatManager stop
INFO: Stopping Stackmat gen 3 manager
Apr 06, 2015 6:35:09 PM au.com.emc.cubing.stackmat.StackmatManager start
INFO: Starting Stackmat gen 3 manager
Apr 06, 2015 6:35:09 PM au.com.emc.cubing.stackmat.StackmatInterpreter initializ
e
INFO: Initialising stackmat gen 3 interpreter
Apr 06, 2015 6:35:09 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
INFO: Starting Stackmat background thread
Apr 06, 2015 6:35:09 PM au.com.emc.cubing.stackmat.StackmatInterpreter changeLin
e
WARNING: Detected mixer line unavailable
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 16000.
0 Hz, 8 bit, mono, 1 bytes/frame, not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(Unknown Sourc
e)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at com.sun.media.sound.AbstractDataLine.open(Unknown Source)
at au.com.emc.cubing.stackmat.StackmatInterpreter.changeLine(StackmatInt
erpreter.java:151)
at au.com.emc.cubing.stackmat.StackmatInterpreter.doInBackground(Stackma
tInterpreter.java:298)
at au.com.emc.cubing.stackmat.StackmatManager$1.run(StackmatManager.java
:272)

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: *
Invalid character in timer value: ♠
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 0
Invalid message end sequence: LF expected, found char 0

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: *
Invalid character in timer value: ▌
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 76
Invalid message end sequence: LF expected, found char 105

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '√'
Invalid character in timer value: ╓
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value: ♦
Invalid message end sequence: CR expected, found char 17
Invalid message end sequence: LF expected, found char 80

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: ⌂
Invalid character in timer value: ▲
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 16
Invalid message end sequence: LF expected, found char 0

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: *
Invalid character in timer value: ╗
Invalid character in timer value: ↓
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 45
Invalid message end sequence: LF expected, found char 65

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: *
Invalid character in timer value: ♥
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value: ?
Invalid message end sequence: CR expected, found char 1
Invalid message end sequence: LF expected, found char 8

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: ?
Invalid character in timer value: ;
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 0
Invalid message end sequence: LF expected, found char 0

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '┐'
Invalid character in timer value: √
Invalid character in timer value: ?
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 104
Invalid message end sequence: LF expected, found char 83

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '*'
Invalid character in timer value: ☼
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value: @
Invalid character in timer value: ►
Invalid message end sequence: CR expected, found char 0
Invalid message end sequence: LF expected, found char 2

Apr 06, 2015 6:35:13 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '⌂'
Invalid character in timer value: ▌
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid message end sequence: CR expected, found char 0
Invalid message end sequence: LF expected, found char 0

Apr 06, 2015 6:35:14 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '┐'
Invalid character in timer value: ╫
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value: á
Invalid message end sequence: CR expected, found char 80
Invalid message end sequence: LF expected, found char 2

Apr 06, 2015 6:35:14 PM au.com.emc.cubing.stackmat.StackmatInterpreter doInBackg
round
WARNING: Detected invalid message:
Invalid instruction '☼'
Invalid character in timer value: α
Invalid character in timer value: ≡
Invalid character in timer value:
Invalid character in timer value:
Invalid character in timer value: ►
Invalid character in timer value: ►
Invalid message end sequence: CR expected, found char 8
Invalid message end sequence: LF expected, found char 0


----------



## Computer Cubing (Apr 8, 2015)

Kimlam, Make sure you've got the stackmat gen 3 option selected, see image I've attached to the post. Also, try changing the stackmat trigger input device in the options.


----------



## KimLan (Apr 9, 2015)

Computer Cubing said:


> Kimlam, Make sure you've got the stackmat gen 3 option selected, see image I've attached to the post. Also, try changing the stackmat trigger input device in the options.


I have selected the stackmat gen 3 option, and I have also tried all the options for the input device. I still haven't been able to get it to work. :/


----------



## Wilhelm (Apr 9, 2015)

I would love to see some further developement on the timer. There are some key features missing imo which would be
-more Statistics for your session for example an average 50/100/1000 or the option that you can customize it yourself to fit your needs
-having the option to switch between multiple Scrambling notations for something like big cubes, clock or especially skewb
-adding a small notification that tells you that your scrambling queue has been finished

Basically what I imagine would be a mix between the CSTimer and Prisma where you have all the features of the CSTimer based on a offline timer which can save your session for a long time.
I would've tried to do it myself but I have no clue about programming whatsoever


----------



## Yarco (Apr 11, 2015)

Thanks for making this! My 3.5mm to 2.5mm cable just arrived today and got it working with the timer. If people are having problems -- try multiple mic jacks if you have them, the one on the front of my PC didn't work, but the one on the back did. Also unplug any USB mics while you are troubleshooting.


----------



## Calode (Apr 13, 2015)

Is this a fork of moony22's version? Moony22 is the last person to be working on it if I recall correctly


----------



## APdRF (Apr 13, 2015)

Wilhelm said:


> I would love to see some further developement on the timer. There are some key features missing imo which would be
> -more Statistics for your session for example an average 50/100/1000 or the option that you can customize it yourself to fit your needs
> -having the option to switch between multiple Scrambling notations for something like big cubes, clock or especially skewb
> -adding a small notification that tells you that your scrambling queue has been finished



+1000


----------



## szalejot (Apr 13, 2015)

Thank you for your version, but It has small drawback:
In beta version of Prisma 0.6 you can hide scrambled cube view. It is extremely useful for BLD solving.


----------



## Wilhelm (Apr 13, 2015)

APdRF said:


> +1000



I'm not sure if the original creator is still active otherwise I would've postet it in the Prisma Thread quite some time ago


----------



## YouCubing (Apr 14, 2015)

I'm using a Mac, and the .jar file isn't working... is this supposed to be compatible with Mac?


----------



## Yarco (May 3, 2015)

Times on the graph and histogram are messed up... the decimal place appears to have shifted one digit to the right. I think this is since the Gen 3 stackmat timer uses 3 decimal places, but normally Prisma only uses two otherwise.

http://i.imgur.com/aj3KM5d.png

http://i.imgur.com/QwVUKNU.png


----------



## bbryant0620 (Jun 21, 2015)

Is there any way that you could add the option to edit the times from the main screen, that is, without having to go into the history each time? I solve while my brother is asleep, so I don't drop the cube or hit the spacebar fast or hard. This adds 1-2 seconds to my time that I have to go in and edit after each and every solve.

Perhaps you could add a right-click context menu. You could, then, right-click on any particular solve and have the option to edit the time.


----------



## SrujayP (Jun 21, 2015)

doesnt work on mac


----------



## Deleted member 19792 (Jun 21, 2015)

It isn't working with me. Windows 8, ProTimer. Audacity is picking up the signals, but Prisma won't.


----------



## MadaraMangekyou (Jul 25, 2015)

my stackmat gen 3 was not working with my windows 8 toshiba laptop
I found the solution!
Control panel -> hardware and sound -> Sound -> microphone -> properties -> advanced options -> and remove the mark on "Enable audio enhancements"
then aply, and , It works!
and sorry for my bad english and for the diferences in the english version on windows 8, my pc is in spanish


----------



## youSurname (Aug 19, 2015)

Computer Cubing said:


> Hello everyone this is Computer Cubing,
> 
> Here is a new version of Prisma Puzzle timer that works with the Stackmat gen 3!
> Credit to the original author, Walter, who published the original project at https://bitbucket.org/walter/puzzle-timer/
> ...



Did you use eclipse / netbeans to make this? If so how can I open the source in these.


----------



## Cyberholmes (Aug 27, 2015)

SrujayP said:


> doesnt work on mac



I have been using Prisma 0.8 from Walter Souza for a while, and it works with Stackmat Gen 3 on Mac.


----------



## youSurname (Aug 27, 2015)

Where's v0.8?


----------



## youSurname (Sep 3, 2015)

SrujayP said:


> doesnt work on mac



I have taken the repository from https://www.speedsolving.com/forum/showthread.php?44228-Prisma-Puzzle-Timer-Requests and created a Java 1.6 Executable Jar. I have also imported it into an Eclipse project for anyone interested. Yes this does support pro timers!

For anyone using mac, I have a mac, and my executable works fine with Java 1.6. It sometimes takes a while to recognise the timer. If you have issues, make sure the timer input option is selected, and check the Stackmat Developer (under view) to see if there is any input at all.

More issues? Try going into System Prefs -> Sound -> Input and set the input volume to full. If (like me) it decides to keep adjusting itself, here's a hacky fix. Open AppleScript Editor (Applications -> Utilities), and type "set volume input volume 100" (without quotes) and press Run. Now it should remain at 100%. Don't ask me why 

You may need to try a combination of jiggling cables, relaunching the timer etc. Use your imagination! Feel free to ask if you're having issues. Getting it working isn't the easiest thing in the world.

For anyone without a mac, remember this is just a recompilation of Methusela96's version, so whatever that does, this should do.

Enjoy


----------



## Kingsman08 (Sep 25, 2015)

When I am looking at the session stats, its not showing in seconds, or rather instead of showing say 33.194, its showing me 331.94. Is there any way to change this?

Also, My mac does not have a microphone jack, will the headphone jack work with a stackmat?


----------



## supercavitation (Sep 25, 2015)

Kingsman08 said:


> When I am looking at the session stats, its not showing in seconds, or rather instead of showing say 33.194, its showing me 331.94. Is there any way to change this?
> 
> Also, My mac does not have a microphone jack, will the headphone jack work with a stackmat?



That port should function as both, you should be able to manually adjust it in Settings.


----------



## javiergonzalez (Sep 25, 2015)

How can i conect a qj timer to the computer?
Please help me.


----------



## KamoCubes (Dec 27, 2015)

*It wont connect*



Computer Cubing said:


> Hello everyone this is Computer Cubing,
> 
> Here is a new version of Prisma Puzzle timer that works with the Stackmat gen 3!
> Credit to the original author, Walter, who published the original project at https://bitbucket.org/walter/puzzle-timer/
> ...




Hi computer cubing when i load up prisma puzzle and change the input to gen 3 my timer still wont start i have everything plugged in but is it because im on mac it doesnt work??


----------



## Vikram (May 17, 2016)

help.....stackmat timer gen 3 pro is not working on my laptop(windows 8.1) and there are only decimals...almost exactly the same as the previous version with a gen 3 option in the time trigger list....


----------



## _StaiNless_ (Jul 1, 2016)

mustardboy said:


> I am having trouble connecting my Gen 3 Stackmat to Prisma. I use Windows 8. The microphone input is definitely being received I just get this flood of errors when I start timing:
> 
> C:\Users\Ben\Downloads\PrismaPuzzleTimer_v1.0>java -jar PrismaPuzzleTimer.jar -c
> lasspath .;lib\*
> ...


I'm having the same exact problem


----------



## _StaiNless_ (Jul 5, 2016)

I know the timer works because it is fine with cstimer but when I use it with prisma it doesn't work


----------

