Sunday, December 8, 2013

TreadGaming Mouse "proof-of-concept" on Thingiverse

I've now also added my "proof-of-concept" mouse, "quickly" (as in days) thrown together. Left and right mouse button works too! Files will be available for others to continue on this. Such as adding side-buttons and a scroll-wheel. Wouldn't that be quite cool to have?

Saturday, December 7, 2013

Sunday, November 17, 2013

TreadGaming - Dead Island: Riptide Demo

So, here is a video I've been wanting to do forever! Now the software quality is good enough to be able to show it off!

This is me doing a quick calibration, and then walking about, showing the quick responses even for slow speeds. Feels really intuitive!

Sunday, October 27, 2013

Plotting Sneaking, Walking and Running

So, here is the promised video, with additional "Dead Zone" fix that we are currently working on. Plotted and recorded live, with me using the treadmill.

The green line shows the normal linear interpolation, while the blue shows a "Dead Zone" interpolation we are currently working on. The idea here is to increase the value quicker in the beginning, as normally controllers have a "Dead Zone" area, which basically is an area where the value is still too low to be considered useable (thought of being noise).

Max is 127, and here I sneak, then walk and finally run. I have also just before doing this calibrated the max to be me running, otherwise it would behave differently. Works perfectly. Sometimes there might be some odd jumps, but isn't noticeable in a game. Plot here reflects the quality of the firmware quite well though. :)

With the "Dead Zone" support, it's possible to indicate how many % of the beginning and by how much it's supposed to increase. This naturally needs to be tweaked, which what I'm currently doing. Might not be perfect for everybody, but I like having it available at least.

Wednesday, October 16, 2013

TreadGaming rev6RF Enclosure

Just a quick post about how the new enclosure looks like. I'm quite pleased with how the buttons ended up, as they are "inside" the enclosure, so if you want to tape the whole thing (which I do at the moment to my treadmill), you can, without pressing down the buttons.

I also included the "TreadMan" I had designed into the enclosure. Looks pretty nice.

Here are 2 renders made in Blender:

Sorry about the delay with videos. Will come for sure, as this project is really start to take shape now! Firmware pretty much complete! And, I bought a Elgato Game Capture HD which allows me to record HDMI data. Basically will this allow me to record the gameplay in HD, and I will use my iPad to record the treadmill, so one can see both at the same time.

Friday, October 4, 2013

Finalizing the Firmware - Behind The Scenes!

We are at full speed, or well, the guy over at odesk is at full speed converting and improving the firmware for the new PCB.

I am really impressed by his dedication and work so far! He even got a bonus for it! I asked him to send some photos before I post about the new firmware. Everybody loves photos. :)

So, here are some he send me of his setup:

He bought a motor to spin a CD to test with. Quite the dedication right there. :)

As for the firmware, everything hardware wise seems to work as it should! So, I'm happy that the board itself is working as it should! Haven't tested the nRF24 module though. Might do that later myself, as this firmware upgrade he does, doesn't include that. Should be rather easy to test later I think, as all I need to do is reuse code and try to talk to it.

Anyway, we have gone back and forth for a while now. He makes some improvements/changes, send me the firmware, I flash it on mine here and test.

I test the Nunchucks and using it on the treadmill. And provide feedback.

He made a nice dual solution with serial text output and joystick working at the same time. This makes debugging and testing much easier. He even made a script that plots the data in real-time. Quite handy tool to use when I sneak, walk and run on the treadmill. The data is also send back to him so he can analyze it and improve.

I will put up some graphs and videos soon from my tests.

Thursday, October 3, 2013

High Speed Laser Optical Sensor [ADNS-9800]

I was doing some research and came by this:

Neat little thing. He is using the ADNS-9800, while I use the older ADNS-9500, but they are pretty much the same. They are compatible with each other so there is no problem for me using the ADNS-9800. As I understand it, the ADNS-9800 has some filter build in, so it will improve the data, but as I'm getting filtering made in the firmware, the ADNS-9500 will work just fine too.

Anyway, interesting idea using this with a trackball. Nice to see that such a thing can have a following: http:///

In there one can see a neat 3D printed DIY trackball:




Inspires me to design such for mine as well... :)

Thursday, September 26, 2013


Yep, more and more is popping up that relates to what I'm working on. Man, I should released this last year. Anyway, they highlight a lot on "exploration" and it's targeted to work on exercise bikes. That is nice, but why not gaming? Anyway, mine works with bicycles too. Hey, maybe I should look more into using Google Earth with mine too.. :) Actually, as mine will behave as a standard gamepad/joystick, I'm sure it's already possible, by using some software to navigate around with. Just launch such software, calibrate, and it's done...

More about it here:

Thursday, September 12, 2013

STEM System and PrioVR

Some new exciting Kickstarters popped up. Related to what I'm doing.

STEM System


Now, I'm backing the STEM system, as this would be something that I would like to have additionally for my project. Currently, I use a Wii Nunchuck (build-in support), and later I might do my own 3D printed version. The STEM system is obviously further along, and it might not be necessary for me to do that extra controller. I guess I will see further down the road. Might be interesting to do anyway, for the fun of it, and as it would be 3D printed too, it would mean people could change the design of it, just like the enclosure will be for the hardware I'm working with now. My extra controller will most likely be cheaper too. Anyway, it all depends how many are interested in what I'm doing now...

Wednesday, September 4, 2013

Vector version of TreadGaming rev6RF PCB

I made this nice vector version so it can be used to explain what's on the board. Could possibly also be used for the Fritzing program. It's not completed yet, but I figured I show it anyway.

Nice huh? :)

Saturday, August 31, 2013

10 TreadGaming rev6_RF PCB's Have Arrived!

Man, this is so exciting! The brand new PCB's have arrived! Just take a look at these photos:

There was one annoying miss made, and that was that the Nunchuck pads on the back side weren't exposed! Luckly, I'm able to scrape of the covering plastic(?), and expose the copper layer. I have done that, and also adding my own thin solder to it. Works great! Obviously, this will be fixed for the possible next production run. No huge issue, thankfully. So far, this looks promising - programing it and turning on LEDs works as you can see here:

Nunchuck fits perfectly as well! I'm currently working on the enclosure for it, tweaking it to my liking and preparing it for the guy over at Odesk so he can finish up the firmware for this brand new improved hardware!

Saturday, August 3, 2013

Batch of 10 Treadgaming rev6RF PCBs ordered!

Just a quick note that I just pressed the "order" button to manufacture 10 brand new TreadGaming PCB's! Should arrive in a month! Can't wait!

In the meantime I will work on updating the enclosure as far as I can. Also I might look at the firmware too.

If these work as I hope they do, these will be the ones used in the crowdfounding video.

Saturday, July 13, 2013

Treadgaming PCB rev6_RF

I just wanted to show you the brand new PCB board!

So, this is just a render though. If all is well, I will do a 10 batch of the board so I can see that it's working. Also, I think I will do it in shiny black. :) And, update the firmware for it.

Notice the addition of extra switch, 2 Wii Nunchuck connections, and the RF antenna there on the right.

So, this board is basically done. I'm just currently going through it, to see if there is anything missing or if I can improve something. But, otherwise this is basically it! The guy at odesk that routed this, seemed to really know RF as he made the antenna and a bunch of other things that you only do if you know what you are doing. Or if you are crazy. But, I believe he knows what he is doing.

All possible pins are exposed as well.

Wednesday, June 19, 2013

Treadgaming PCB is being upgraded!

Since I did the firmware, and tested in games, I realized that, even-though I have headers on the PCB, I really wanted to make it easier to, out-of-box, also navigate around, not only walk back and forth. That is why the new PCB will have Wii Nunchuck pads (just like the Video Game Shield)  where you can just connect the Wii Nunchuck straight into the PCB and it will work. I also have 2, one for each hand, if wanted.

The Nunchuck might not be the best controller out there, but it is cheap, has a joystick, a few buttons, and a accelerometer, which is great for this. You can just hold it in your hand to look around, and walk that way on the treadmill.

Yes, I know it's not like the Razer Hydra, but still. Actually, one might be able to use the Razer Hydra with mine, if the game allows it.

While I'm updating the PCB, I'm also including RF (2.4Ghz) support which opens up for even more fun additions in the future. Now, it will only be included in the commercial one, if this happens to end up being popular as the FCC certification (which I need to sell with RF in USA) is quite expensive. But, I figured, I include RF support in the PCB now. That way, I can at a later stage decide if I can include the RF components or not, and I don't have to pay extra for a new PCB. It will just be a matter of including the components or not when manufacturing the board, everything will be ready for it. I think this is quite smart. :)

The idea with RF is also that in the future I could always do my own "Nunchuck" solution, with better hardware, and wire free (using a rechargeable battery)! Others are also welcome to play around with it! Such as making 2 Treadgaming PCBs communicate for some crazy reason.

This time around I'm also exposing every possible pin, even though I use it. This way, the pins are multifunctional. For instance, one might not use both nunchucks, which frees those pins up, and since they are exposed, they can be used for other things.

I'm also doubling the CPU frequency. It's even overclock-able to squeeze even more out of it.

Tuesday, June 18, 2013

Omni Treadmills

I posted about the Omni way back (which now also is on Kickstarter: ), and apparently another just popped up:

I even backed the Delta Six: which actually works better with my project as with the others you have to use a headset and you can't see the gun (and look through the scope for instance).

Personally, between the two above, I prefer the Omni. That way you don't have to moonwalk. I backed both though, as I think they are both cool in their own way. Seems I should had released this project last year though. Anyway, hopefully those other projects will get people more into this, and help me too hopefully. This should be much cheaper. Especially if you already have a treadmill/exercise bike.

Sunday, May 5, 2013

Firmware Calibration Mode

After a lot of back and forth with the guy over at oDesk, we are now very close to finish this up. He has added filtering and the calibration mode! He has gone way beyond what I expected as well. Not only is the LEDs indicating in a nice way what is going on, he just now also added the Joystick USB descriptor which will send the filtered and scaled data over the USB as if it was a joystick/gamepad.

 LEDs explained:

Normal operation:
- green led on.
- yellow led blinks on motion detection.
- red led is off if all is fine, otherwise it's on to show some error occurred.

Calibration mode:
- the green led start blinking.
- the red led is off until you start moving and no stable value is found
- when running the red led blinks if there is no stable value
- when moving the red led is always on if a stable signal is detected
- the green led stops blinking if the calibration is done (stable for more than 5sec).

It will time out after 25sec if it doesn't finding a stable value.

He has added so it responds quickly (150ms), and from what I've tested in a joystick test application it really behaves beautifully! It outputs 16 bit values so value range is  −32768 to 32767 and I get around 3000-5000 when sneaking, 14000-16000 when walking, 22000-24000 when walking a little faster, and maximizing at 32767 when running. I love it!

Here are some graphs of data, and one can clearly see that it can handle noise and variations beautifully. What I did was walking, and then stop, and then run.

Tuesday, April 9, 2013

Omni Treadmill by Virtuix

A college of mine gave me a link to this cool project:

This is basically the vision I've had in my head for a long time with my own project here. Other things has kept me too busy though.

This will be a Kickstarter project later this year. May or so. I really hope it won't be expensive. However, I will probably back this on Kickstarter anyway, because it's what I want as well. Hell, it's why I'm doing this project in the first place!

This project of mine will still be ongoing. If nothing else, it will be a much less expensive alternative. With my solution, you can already use your existing treadmill or exercise bike. And besides, my PCB has other uses as well. Virtuix Omni Treadmill is much more intuitive though. Especially with Oculus Rift which is helping them out as well. Combining those two and you have a whole 360 degree virtual world. Mine is more 90 degrees. Also, Virtuix is more of a business, this is more of a hobby. At least so far.

Wednesday, March 6, 2013

Firmware Improvements - Behind The Scenes!

So, you might be wondering what progress is made since I hired the guy at Odesk? Well, here are some early photos from the guy himself:

And this is images from a few days ago:

Man, isn't that awesome!? Talk about dedication!

During the process, he send me the .hex file (compiled firmware), ready to flash on the device to use.

So, what I did was, flash mine with it, put it on my treadmill, and started recording the data that was send over serial connection. I first start walking for a while. Then I stop. And then I run/jog on the treadmill.

First firmware I got gave this result:

This isn't all bad, but not particularly good either, as it basically is the same kind of noisy data I got. Only difference here is the higher values.

Second firmware I got gave me this:

I have no idea what happened here (averaging too much?), but this is obviously bad. I did walk first, and run second, but they are at the same height and way too blocky...

Third firmware I got gave me this:

Wow! Look at that! I'm quite pleased with that result right there! Best I've gotten ever! Almost no noise at all, and seems quite stable!

And now, he is working on the "calibration mode" which will make it possible to teach the device what this data actually means!

Monday, February 4, 2013

oDesk - Treadgaming Firmware Improvements Part 2

A while back I posted about hiring someone at oDesk to help me improve the firmware. Back then I decided to not do it as it seemed it could turn out quite expensive as it wasn't a fixed price. I wanted it to be ongoing, but then I realized that for those improvements, it would be too much money.

I have made a few improvements since. Important ones being moving data from the interrupt routine (which should just take a few milliseconds maximum, but I had main code there) to a main loop, outside the interrupt. And it behaves a lot better. It basically responds better.

I also fixed two things at the same time - overflow and timing. That is, I fixed so the timing actually is what is excepted, such as being 1s instead of 500ms, and this was solved by enable a overflow interrupt. An overflow interrupt basically calls a interrupt routine (function) when a counter makes a address/variable overflow for what high value fits in it.

As I'm quite busy and I figured that it's more beneficial to the project to have someone more experienced with DSP and knowledgeable in assembler for AVRs (to optimize) to do the last important part, so I went back to oDesk again to hire someone. This time at a fixed price. This way, it will be able to reach high quality faster, as it will take time for me to learn what I need to, to do this by myself.

You can find the job here:

And, as you can see, I already hired one guy that seems quite promising. I just send one PCB to him today, which means he should be able to start working on this latest Monday next week. I will send my firmware soon as well, so I suppose he will start even sooner.

While I was talking to the guy, sending him some example data, he gave me some graphs back.


This is a graph of my raw data I send to some applicants. Here I first walked for a while. Then I paused for a moment. And then started to jog/run. Even the small backwards motion at the end is correct as my treadmill went backwards a little when I walked off.


So, this is better than the Low Pass filter. As you can tell from the graph above, it's not reaching 0, but he will fix that as well.


Gotta love graphs! :)

He will also add "calibration" mode to the firmware, which will basically teach the device what speeds are what, so walk and run can be mapped correctly over USB as a gamepad or whatnot.

I can't wait to see what he does! I'm quite excited to see what comes out of this! And, if all goes according to my plan, the end product out of this will be at a acceptable quality level to sell the thing! I haven't been satisfied with the software quality, which is why I haven't started selling it yet.

I don't even know how many are interested in buying this, which normally is bad I know, but I do this just to learn how doing these kind of things works. So whether it will sell well or not, it's a good learning experience! And, when I actually sell it, I want it to give a fantastic first impression and just let it scream quality! Besides, I haven't done much marketing at all, so I'm expecting slow start anyway. But, I'm a strong believer in making something of quality, so if you are interested in this kind of thing, you shouldn't have to be disappointed! That way, it's a win-win. I would also love to see some creativity using it not only for what I had in mind. Anyway, time will tell here I suppose...

Also, I will also update this blog more often when there is more activity here. Especially when more and more of those PCBs are sold. Posting tips and tricks or whatnot. Would be fun to post about what other creative people come up with as well!

Oh, and there is also one new guy at oDesk that I'm thinking of hiring just because he seemed so into the project, and he also gave me a simplified version of the Kalman filter, which I applied and had some nice results out of.