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.
Wednesday, June 19, 2013
Tuesday, June 18, 2013
Omni Treadmills
I posted about the Omni way back (which now also is on Kickstarter: http://www.kickstarter.com/projects/1944625487/omni-move-naturally-in-your-favorite-game ), and apparently another just popped up: http://www.kickstarter.com/projects/654506511/wizdish-exercise-and-vr-omni-directional-treadmill
I even backed the Delta Six: http://www.kickstarter.com/projects/356540105/delta-six-a-new-kind-of-game-controller 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.
I even backed the Delta Six: http://www.kickstarter.com/projects/356540105/delta-six-a-new-kind-of-game-controller 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.
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.
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:
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.
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.
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...
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!
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:
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 25, 2013
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: https://www.odesk.com/jobs/Treadgaming-Firmware-Improvements-Fixed-Price_~01901c68264f5ea51a
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.
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.
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: https://www.odesk.com/jobs/Treadgaming-Firmware-Improvements-Fixed-Price_~01901c68264f5ea51a
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.
Original
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.
Filtered
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.
Spectrum
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.
Subscribe to:
Posts (Atom)



















