The recent announcement of the Google Cardboard virtual reality viewer has caught my interest, as well as the interest of a bunch of other people. So, I’ve been doing a little reading up to try and figure out exactly what the best way for me to approach this would be.
First, I installed the >Cardboard Demo on my phone. Even without a proper viewer it is fairly interesting. Next, I started looking at getting a viewer. My brother had shared a link to a kit from DodoCase for $25 which comes with everything you need. Unfortunately, they say to allow four to six weeks for delivery. The Google documentation includes a pattern you can print to make a viewer yourself. I was figuring I’d try that out at work next week. The biggest issue is finding the right lenses.
The documentation suggests the Durovis OpenDive Lens Kit. It costs about $20. This led me to look at Dive. Dive appears to be an already manufactured VR viewer for cellphones. It costs 57 Euros and ships from Germany. They say their estimated delivery time is 10 to 15 business days, perhaps longer if there are issues with customs.
Their Open Dive How To includes STL files for printing with a 3D printer. Perhaps I will try that at work. They also mention a Snakebyte iDroid:con Rechargeable Bluetooth Game Controller for Android and iOS Devices. They recommend this for VR games that need a controller. It costs $23 and I don’t see a need for it, yet.
Dive uses the Dive Launcher It is also worth playing with and has an interesting interface, even without a proper viewer. It seems similar to the Google Cardboard app and I wonder how much things will interoperate.
I continued to look for other sources for lenses and ended up in the Cardboard & VR Developers community on Google Plus.
I believe it was there that I found out about Surplus Shed which supplies surplus, used, and unused optical and electronic bargains for fun, hobby, education or profit. They mention on their front page that they have lenses for Google's new DIY Cardboard Virtual Reality Smartphone Viewer. Just $4.50 each! (Get 10 or more for just $3.50 each).
This looks like the best deal so far and I’m thinking I should get a ten pack of lenses. This would allow for making five pairs of VR glasses. I suspect that if I make a pair of VR glasses, there will be people asking how to get them.
Google Cardboard uses magnets for controlling the glasses. It is possible to get by without the magnets, which may be a good thing, because the ones that Google suggested are out of stock at both Home Depot and Amazon. They are 3/4 in. Neodymium Rare-Earth Magnet Discs. At Home Depot, a 3 pack is $5 and on Amazon a six pack is $12. Applied Magnets has magnets like these for 89 cents each. You also need 3/4 in. x 3/16 in. Ceramic Disc Magnets. HomeDepot has them available online at eight for two bucks and Amazon has them at eight for seven bucks. Applied Magnets has these magnets for 29 cents each. I should probably get five of both types of magnets from Applied Magnets.
To hold the Google Cardboard together, Google recommends two strips of adhesive backed Velcro, approximate 3/4 of an inch by 1 1/4 inch. If I make five glasses, I’d need five times as much Velcro. My guess is that we have some Velcro somewhere in our sewing supplies, either stuff that Fiona has accumulated or that came from my mother, but I don’t know if any of that is adhesive backed, or if we can find it.
Google also recommends 3 1/2 inch rubber bands. Again, that should be something we have around the house or should be able to find easily. Some of the other, non-cardboard projects also call for rubber bands like these, so it would be good to have them on hand, and probably extras in case some break.
The final, optional item that Google recommends, but isn’t required is sticker NFC tags. The one in Amazon the recommend is unavailable. It looks like the best option for these are these NFC tags. They come in five to a pack, so one pack is probably sufficient, but it would be nice to have two packs to do other NFC experiments or to use tags on different devices.
As I read more on this, I stumbled across vrase. It looks like they hope to ship a device similar to Google Cardboard or Open Dive soon. They did provide a link to the
Secondsight - Virtual Reality Headset, VR HMD that I could print at work and which I believe would use the same lenses. The person writing about also used a RII Mini Wireless Bluetooth Keyboard. That is another interesting device I should look at some time. However, there seems to be a bunch of different options, and I should explore them before deciding what to get, or how useful they really are. VRASE lists several different Bluetooth game controllers.
I also stumbled across REFUGIO3D. It is a kit which appears very similar to Google Cardboard, but only seems to be available in Germany. However, from reading through that website, I came across 3D Side By Side movies. Searching on Youtube for 3D SBS provided a lot of material.
So, lots of work to do on Virtual Reality viewers, and when I get some running, I can then think about developing code for them.
A month or so ago, I got a Samsung Gears 2 watch. I was very excited to start programming for it, but have been too busy to really explore it, so I’ve been doing a little bit, here and there and finally have time to write a little bit about.
First, a little background. I was pretty excited to see a watch running Tizen. One of previous cellphones was the Nokia N900, which ran a version of Linux called Maemo. I liked programming for Maemo and the Nokia N900. But Maemo was merged into MeeGo and my old N900 started falling apart so my Linux on mobile devices programming subsided as I became more involved in my current job.
Part of the reason I like open source development for mobile devices is that, in theory, it should lower the bar to entry making such programming more accessible. I’m not sure how well this has really worked out in practice, however, the community of Maemo developers was pretty good at it.
Unfortunately, Tizen on the Samsung Gears 2 Smartwatch really hasn’t developed a good open source community yet, as far as I can tell, and the documentation seems to me to be a bit obtuse. So, with that, let me share some of my experiences getting going programming the Gears 2 Smartwatch.
Installing the SDK
The first big caveat, I’m running on a Windows 8 based laptop. This presents plenty of additional challenges, but if I can get it running on this box, it should be possible to get it running a lot of places.
First step was to install Java. In theory, this should be nice and easy. However, these days, there are more and more different choices for flavors of Java. I installed Java SE Development Kit 8u5 - Windows x64.
I also downloaded the Tizen SDK. I wasn’t sure if I needed the Tizen SDK, the Tizen SDK for Wearable 1.0.0b1, and/or other parts. It now looks like all I really needed was the SDK for Wearable, but it doesn’t hurt to have both.
The next issue I ran into was that the install failed. Apparently, this is not a unique problem. There is a blog post about Installing Tizen SDK 2.0 on Windows 8 64 bit. After the install fails, the install manager is left in the f AppData\Local\Temp\tizensdk directory. In that directory, run javaw -jar InstallManager.jar, and you should be good to go.
At least, that worked for the Tizen SDK. However, when trying to run the Tizen SDK for Wearable, even that presented problems. I kept getting the error, “Cannot find repository http://”
I read through the Tizen forum Can't install Tizen Sdk for Wearable because of "Cannot find repository." There was a lot of discussion about HAXM, which I’ll get to later.
The comment at the bottom gave the working answer. How to install Tizen SDK for Wearable (Samsung Gear). You need to download the SDK image from the same place you downloaded the install manager, and then enter the location of the SDK image in the advanced options of the SDK Install Manager.
The installation of the Intel Hardware Accelerated Execution Manager went amazingly simply, especially given the problems installing the SDK.
However, I ran into one problem. The virtualization technology needed to be turned on in BIOS. To make things more complicated, my hard disk is encrypted so I don’t have a standard bootup process. The bootup also was set to boot without waiting for people to change BIOS settings, so it was a challenge to get the BIOS changed. I’m running an HP ENVY 15, and activating vt-x from bios gave me the information I needed, when I managed to hit the F10 quickly enough on Startup.
Learning the architecture
Being the old command line Linux programmer, I figured I should be able to connect into the Linux box (in this case the watch), bring up a shell prompt, and start developing. I’m also used to working with Google Glass which connects to the Internet via Wifi or Bluetooth tethering. With my Nokia N900, it would connect to the Internet, and then I could connect to the phone over the internet using Secure Shell, or even set up a web server on my phone. I was hoping to do something similar with the Samsung Gears 2 watch.
However, it appears as if the Gears 2 Watch is set up a bit differently. It communications with a Samsung Smartphone over Bluetooth, but does not use TCP/IP. The advantage of this is that you don’t need a special plan from your cellphone provider that permits Bluetooth tethering. However, it does significantly limit what you can do. I suspect someone will find a work around for this soon enough.
To deal with this the Gears 2 architecture is set up to run in a bunch of different modes, with applications running standalone on the watch, or communicating with an app on the phone. I have not dug deep enough to find if there is a decent generic proxy app for Gears 2, but I’m dubious. You can read more about the architecture here.
Starting the Emulator
The development environment is Eclipse. I started Eclipse from the \tizen-wearable-sdk\ide directory and started poking around. However, I couldn’t get the Gears 2 to show up and I had problems with the emulator.
While it should seem obvious how to set up the emulator, I scratched my head about it for a bit. So, the quick cheat sheet. In Eclipse, in the connection explorer in the lower left, click on the first icon entitled Emulation Manager. When the manager starts, click on Add New to create a new emulator. In the details on the right, enter the name of the emulator. I’ve created Test1 and Test2 using the defaults for all the other values. Click on Confirm at the bottom of that box.
Also, be sure you are doing this from the wearable-sdk. Otherwise, you’ll be setting up emulators for Tizen based smartphones.
Once you have your emulator created, click on the play button at the bottom of the emulator. This gets to wear I’ve run into different issues. I’ve tried launching the emulator manager multiple times and Eclipse complains that it is already running. Yet nothing show up in the list of available connections.
When I’ve clicked on the play button, nothing seems to happen, so I go on and try other things, which usually screw up everything. Be patient. On my machine, it takes about thirty seconds for the emulator to show up, and another thirty seconds before Eclipse discovers the emulator is running.
Once the emulator is running, you are ready to start testing.
Connecting the Watch
Again, this seems nice and straight forward. Connect the USB cable from the PC to the connector that snaps on the back of the Gears 2 watch. However, when I did that, I got nothing. It turns out that Windows needs driver updates to be able to recognize the USB device.
GUIDE: First Time with your new Tizen SDP - Drivers and certificate talks a bit about this and provides a link to SAMSUNG_USB_Driver_for_Mobile_Phones.zip I downloaded the zip file, ran the executable in it and the next time I connected my watch to my laptop, it showed up in the connection explorer.
Shell Access At Last!
With the watch connected, I could browse the files on my watch using Eclipse. I could also go into shell mode, using the command ‘sdb shell’ in the \tizen-wearable-sdk\tools directory. Looking at other sdb commands, there is ‘sdb root’ command. However, trying to enable root gives a Permission denied.
There is an article, [Hack] The Tizen Samsung Gear 2 and Gear 2 Neo get Root access I haven’t tried that yet since I haven’t gotten a need for root access yet.
And the development
I’ve been having problems with my machine crashing a bit recently, since I’ve started trying to develop for Gears 2. I’m not sure if the problem is with the IDE, the emulator, or completely unrelated, but it has been slowing down my testing. I did manage to side load a package on my watch using the commands in How to Install (sideload) .wgt app files on the Samsung Gear 2 smartwatch using SDB. This is also useful in finding out about certificates, which is an area I haven’t mastered yet. Once an application is slide loaded, removing it can be a challenge. How to uninstall an app in Tizen emulator? gives a good idea how to do it, except that the package id is in the config.xml file.
I’ve also run applications from Eclipse, which I’ll talk about more later.
I apologize for such a long detailed post about getting started with development for Gears 2. Hopefully, this will provide a good starting for others wanting to get going.
I have now been wearing a Samsung Gear 2 Smartwatch for close to a week, so I feel that it is now time to write some initial thoughts. One of things that particularly caught my attention about the Gear 2 smartwatch is that it runs the Tizen operating system. I used to write code for my Nokia N900 which ran a predecessor of Tizen, so the idea of running a Linux based operating system on a smartwatch especially caught my attention.
However, I’ll aspects about Tizen for a later post. The upside is that it may be a much better, more open operating system. The downside is that it appears locked down, at least right now, and setting up the development environment is not as easy as I would like.
I am also interested in the smartwatch as another player in the rapidly growing wearable computing field. I’ve been wearing Google Glass for nearly a year now, and I continue to wear it at the same time as I wear Gear 2. One of the nicest features of both of these devices is the more instantaneous notification than a smartphone. When a notification comes in, glance up for Glass, glance at your wrist for Gear 2, or pull your smartphone out of your pocket, pick it up off the desk, or whatever.
On Glass, I get notifications about twitter, text messages, various news sources and gmail. Gears gives me access to corporate email and text messages. I’m starting to experiment with other notifications. They look promising. If you want a device for quicker notifications, Gears 2 seems to be a good way to go.
Of course, being a digital omnivore, I can easily imagine continuing to wear Glass and Gears at the same time. Ideally, I’d love to pair Glass with one of my phones and Gears with the other. Unfortunately, Glass requires at least Android 4.0.3 and Gears requires Samsung devices. I have a Samsung G4 and an HTC Insight, running 2.3.0. So, for the time being, Glass and Gear are both linked to my G4. When I get a chance, I will see if I can upgrade the HTC to Android 4 and see if I can connect it to Glass.
What differentiates Gears 2, from Gears 2 Neo and Gears 2 Fit is the camera. However, this is a 1.9 megapixel camera. These days, it seems like a 5 megapixel camera is the minimum, so I’ve been pretty unimpressed with the camera on Gears.
The Gears 2 Neo and Gears 2 Fit cost $200 and seem to be competing more with the Fitbit and related fitness bands. They cost twice as much as the competitors, and the camera makes it cost three times as much.
I did try the Nike Fuelband at one point and was very unimpressed. The fitness apps on the Gears 2 are nice. I’ve walked 6483 steps today. Well short of the 10,000 steps I’d like to be doing, but not bad. In fact, I’ve been over 6000 steps every day since I got the Gears. One thing that I wish it had was some way to download this information. There is a separate Exercise application, that doesn’t seem to share data, but does use the heart rate monitor. There is also a Sleep App which tracks how long and well you are sleeping. So far, no great insights from it, but it seems okay. It is supposed to be water resistant down to a meter deep. So, I’ve wondered about using it to track swimming, but I haven’t found an app for that. On Gears 2, you can share data from Gears Fitness apps as an image to social media. A nice start.
Ideally, I’d like to see patient portal type apps connect with Gears and that may be another test soon.
I have tried installing a few other apps on gears, but nothing has really caught my attention or worked nicely for me. The QR code reader seemed like a good idea, but hasn’t worked properly yet and the Facebook Quick View app seems flakey.
For me, the battery has lasted pretty well, I suspect it would run for two days between charges at the rate I’m using it right now. It recharges pretty quickly. I charge it while I shower and eat breakfast.
All in all, it is interesting enough for me to continue to wear regularly, experiment with, and explore development on. More later…
The annual Weitzman Symposium is coming up and at work, which we stream live every year. So, I’ve been exploring where things have been going with online video. It seems like there are a lot of interesting developments.
In live streaming, I’ve used a bunch of different tools. I did a lot on QIK years ago. However, that got bought out by Skype and shutdown. A friend gave me a heads up to save the videos, but I believe I was too late.
Another live streaming system I used a bit was Ustream. This is what we use at CHC. I’ve always liked UStream and they continue to be reliable. They have new software for streaming, called UStream Producer. I’ve only used the free version, which does most of what I want. The paid versions, Producer Studio and Producer Pro add options like multi-camera support and audio mixing. Not much new there.
The other real workhorse in video streaming is Livestream. I’ve used this a bit as well. They appear to be the first of the serious livestreaming platforms to work nicely with Google Glass. However, they organize their content around events as opposed to channels like UStream does. I find the event orientation a bit clunky.
I’ve also kicked around Justin.tv, ooVoo and Bambuser. None of them really have been that compelling for me, so I don’t end up using them often. However, I did use Bambuser from Raspberry Pi, so that was pretty cool.
In terms of video conferencing, at work we use Vidyo. I’ve participated in various Vidyo conference calls, and it seems fine, but I never really got a chance to get under the hood, so I can’t say a lot more about it. However, at work on Friday, we took a look at zoom.us. I was really impressed with it. The free version is very powerful, and the paid versions are pretty inexpensive for the features they provide. It is interesting to note that key investors includes Qualcomm as well as Patrick Soon-Shiong.
The other software that I started playing with is ManyCam. This allows you to switch between different cameras on a PC, screen cast, and even do some funky effects. I used it for doing some green screen broadcasting going out into both UStream and Zoom.us.
So, any other online video tools I should be looking at?
A few months ago, CHC purchased a 3D printer. Since then, I’ve been learning how to create objects using various programs. Initially, I used Blender, which is a very powerful, yet complicated 3D rendering program. I figured it was probably too difficult to teach to elementary school kids. Later, I tried SketchUp which is much easier, and there is also a free version of this. I was thinking of teaching this to the kids, when someone suggested I try TinkerCAD.
TinkerCAD is a free web based 3D design program. It is very easy. However, you need to set up an account to use it and the terms of service said you needed to be thirteen to set up an account. I didn’t want to go through issues of trying to get the parents to set up accounts, nor did I want to set up a half dozen student accounts to manage.
Fortunately, it turns out, you can have many people logged into the same account at the same time, so I set up six computers running TinkerCAD and logged all of them into my account. I prepared a lesson plan based on the TinkerCAD quests going through how to move, copy and replicate objects, how to change your views, how to change the size and location of objects and how to use the opposite of an object, a hole, to create interesting designs.
The students came in, sat down at the computers, and started working. Many of them had played Minecraft in the past, and were used to moving around cubes to create 3D designs, although they may not have thought of it that way. They all quickly started creating objects and reshaping things. There went my lesson plan.
So, I watched the students as they played at 3D design and I pointed out things they didn’t pick up automatically. A few had problems finding objects other than the basic geometric objects and I got them to scroll up and down the objects on the left. Many had probably moving objects up and down along the Z axis, and I showed them about using the little black arrows above and below the objects.
We also, fortunately, had more students than computers, and some students arrived a little bit late. This meant that the students needed to share computers, but more importantly, it gave them an opportunity to teach one another what they were learning.
I spent a little time talking about how long it takes to print objects. The basic cube takes about twenty minutes. Two cubes together, only takes a few minutes longer. The complexity of the object seems to contribute more to the time it takes to print an object than the size of it.
I show them how I could take their designs, save them as STL files, open those files in the Makerbot program, and then print the object. Seeing their objects printed, while understanding how long it took to create objects really inspired them, and by the end of the hour, every student had an object they wanted printed. They helped change the filament of the printer to the color they wanted and excited watched their objects appear.
I only had enough time to print the first two smallest object and I figure I’ve got a full day of printing objects from these students ahead of me. They will swing by later to print up their objects and perhaps share some of their own designs.
I pointed out to their parents how they could set up accounts, and share objects they created publicly. I expect I’ll be getting some emails about other objects they create.
The key take away in teaching kids 3D printing with TinkerCAD: Set up the environment, let them start playing with the program, give them hints on places where they might get stuck, encourage them by printing a few objects, and get out of the way. The students picked up TinkerCAD much more easily and quickly than even I had expected.