Category Archives: Games

Bluetooth in a Windows 10 VirtualBox VM

Introduction

While all of my computers run Linux, sometimes it’s useful to have Windows – fortunately, not often. Due to the long wet grey dreary winters here in the WA state Puget Sound area, I recently got an indoor cycling trainer. You can use lots of different software with these. The software emulates rides in either the real world (based on video & GPS tracks) or the virtual world (like a video game). It connects to the trainer using Bluetooth or ANT+ to dynamically control the resistance (simulating hills) and measure the rider’s power output.

The only software I could find that runs natively on Linux is very basic and not well supported. These include Auuki and Golden Cheetah. I wanted something more full featured. The next best thing would be Android.

Android?

Most of the popular apps (Zwift, MyWhoosh, Rouvy, Kinomap, icTrainer, etc.) support Android. MyWhoosh was out of the question because it consumed 7 GB of space on my tablet before it could even start running. It is a big, slow, steaming pile of bloat-ware. Most of the others are too expensive for my frugal nature. So I started with icTrainer, which is less well known. At $30 per year, it is the least expensive of the non-free apps. They had great support, promptly answering a couple of questions I emailed them. Their Android app ran just fine on my old slow tablet. The rides I downloaded are huge since they have full video, and icTrainer stored them on the external SD card, which was a nice plus.

So far, so good. But I wondered if I could run indoor cycling software on my laptop, which runs Ubuntu 22. This would give me a bigger screen, and the ability to drive an even bigger external monitor. But it would require getting Windows to work.

Windows 10

First I installed VirtualBox on my Ubuntu 22 laptop, then unearthed an old Windows 10 installer ISO file and unused license key I had hanging around. The Win 10 install went fine and I installed the icTrainer Windows app, which also went fine. The problem was: how to get the Windows 10 VM to use the laptop’s Bluetooth so icTrainer could control the trainer?

I’ll cut to the chase. Start by ensuring that the Win10 VM is shut down.

First, shut down Ubuntu’s bluetooth service, so it releases the computer’s Bluetooth hardware.

sudo service bluetooth shutdown

Next, find the computer’s Bluetooth hardware. It’s considered a subset of the USB system, so list the USB devices:

lsusb

In the list, look for an entry related to Bluetooth. On mine, it is this:

Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface

Next, start the Win10 VM and then log into it.

In VirtualBox, go to USB Devices, look for that same device in the list, and check the box so VirtualBox so it can make it available to the VM.

Now in Win10, confirm that it’s there by going to “Device Manager” and finding the Bluetooth section. If it doesn’t appear, try rebooting the Win10 VM.

At this point, the Win10 VM has access to the computer’s Bluetooth and any apps that use Bluetooth (such as indoor cycling training programs) should work.

Scrabble on Mobile

I’ve been playing Words with Friends with family, both near and far, for the past year or so. It’s similar to Scrabble but the scoring and rules are different enough I wanted to try good old fashioned Scrabble. I discovered that Hasbro and Electronic Arts collaborated to create a mobile version of Scrabble where the gameplay is similar to Words with Friends.

What’s Wrong with WWF?

The Words with Friends rules favor frequent players, which can be unfair. For example, it has short 5-move games you can play with its AI, and doing this earns you credits you can use to buy swaps and other advantages when playing other people. Also, WWF is generally easier than Scrabble encouraging crazy big plays. For example, every time you prepare a move it shows a bargraph showing how good that move is compared to the best available, so you know whether there’s a bigger scoring move, how much bigger it is, and whether it’s worth taking more time before submitting your play. Finally, the Scrabble app uses the official built-in Scrabble dictionary, where WWF has its own dictionary that is frustratingly inconsistent.

Scrabble is available on iOS and Android and it has the same rules & scoring as the good old board game you remember. And the familiar consistent dictionary. Once you get it set up and you log in, it works quite well. But getting there is much more difficult than it needs to be.

Where Are My Friends?

Installing is easy enough. But once installed, if you want to play with your friends, you all need to create accounts. Scrabble offers Facebook, but since I don’t have a FB account, I used the alternative option to create an Electronic Arts (EA) account.

I did this for both Michelle and myself. Then in the app I clicked “New Game”, then “Play with Friends”. The list of friends was empty, as expected since this was my first time. I tapped the “Find player” searchbox to enter her username but the phone’s keyboard didn’t appear, so I couldn’t enter anything. This was confusing: what is the point of a “Find player” search box, if it doesn’t let you type in anything to search for? I tried this on Michelle’s phone too, same behavior.

Then I googled the problem. Apparently, lots of people encounter this problem. With further reading and experimenting, here is the workaround that I cobbled together:

Key Facts

  • There is a site called Origin, owned by Electronic Arts.
  • When you create an EA account, it is also an Origin account.
  • In Scrabble, you can only play with people you have befriended on Origin.
  • Origin is both a web site, and a fat client application on Windows and Mac.
  • Finding and befriending other players can only be done in the application, not on the web site.

Workaround Steps

  • Point your browser at EA create a user account.
  • Point your browser at Origin and download the fat client (Windows or Mac).
    • Since I run Linux, I used my Windows 10 VM running on VirtualBox.
  • Install the client app, run it, and log in as your EA user.
  • In the app, use the “find friends” feature to find your friend(s).
    • You need to know their username or email.
  • For each one, click on them and send a friend request.
  • Your friends must follow the above steps, then accept your friend request.

After the above is complete, run Scrabble on your device. Pick “Create New Game”, then “Play With Friends”. Your friends should now appear in the list. Pick one and play!

Why Can’t I Submit my Move?

I’m in a game with Michelle and I submit a move. The submit button transforms to say “waiting”… and the app just hangs. A few minutes goes by, nothing. I close the app, open it again, and my move is gone as if I had never made it. I make the same move again, and submit it. Same behavior.

Long story short, the app had logged me out. But it didn’t tell me. And it just stopped working without any error message or indication why. Poking around, I went to settings and happened to see that I wasn’t logged in anymore. I logged in again. Then the app started working.

So, the app occasionally logs you out without telling you, and misbehaves for no apparent reason. Keep that in mind. If the app every acts strangely, go to settings and double-check your login status.

Conclusion

What’s really frustrating about this process is how obscure it is. The average person:

  • Won’t know why the app “Find player” search box doesn’t work.
  • Won’t know that EA is associated with Origin.
  • Won’t know that they can only find friends on Origin.
  • Won’t know that this feature only works in the Origin app, not the web site.
  • Won’t know that the app occasionally logs them out.

None of this is explained in the app or in help that I could find online. The first part is a one-time setup thing so that’s no a problem if you know to do it. The second part you just need to know about. But once you get past these, the app is pretty good. It’s fun to play old-fashioned Scrabble without any player aids which is more balanced and fair.