{"id":3454,"date":"2025-02-09T02:42:11","date_gmt":"2025-02-09T02:42:11","guid":{"rendered":"http:\/\/mclements.net\/blogWP\/?p=3454"},"modified":"2025-02-09T16:16:14","modified_gmt":"2025-02-09T16:16:14","slug":"bluetooth-in-a-windows-10-virtualbox-vm","status":"publish","type":"post","link":"http:\/\/mclements.net\/blogWP\/index.php\/2025\/02\/09\/bluetooth-in-a-windows-10-virtualbox-vm\/","title":{"rendered":"Bluetooth in a Windows 10 VirtualBox VM"},"content":{"rendered":"<h3>Introduction<\/h3>\n<p>While all of my computers run Linux, sometimes it&#8217;s useful to have Windows &#8211; 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 &amp; 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&#8217;s power output.<\/p>\n<p>The only software I could find that runs natively on Linux is very basic and not well supported. These include <a href=\"https:\/\/github.com\/dvmarinoff\/Auuki\">Auuki<\/a> and <a href=\"https:\/\/medevel.com\/goldencheetah\/\">Golden Cheetah<\/a>. I wanted something more full featured. The next best thing would be Android.<\/p>\n<h3>Android?<\/h3>\n<p>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.<\/p>\n<p>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.<\/p>\n<h3>Windows 10<\/h3>\n<p>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&#8217;s Bluetooth so icTrainer could control the trainer?<\/p>\n<p>I&#8217;ll cut to the chase. Start by ensuring that the Win10 VM is shut down.<\/p>\n<p>First, shut down Ubuntu&#8217;s bluetooth service, so it releases the computer&#8217;s Bluetooth hardware.<\/p>\n<pre>sudo service bluetooth shutdown<\/pre>\n<p>Next, find the computer&#8217;s Bluetooth hardware. It&#8217;s considered a subset of the USB system, so list the USB devices:<\/p>\n<pre>lsusb<\/pre>\n<p>In the list, look for an entry related to Bluetooth. On mine, it is this:<\/p>\n<pre>Bus 001 Device 003: ID 8087:0a2b Intel Corp. Bluetooth wireless interface<\/pre>\n<p>Next, start the Win10 VM and then log into it.<\/p>\n<p>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.<\/p>\n<p>Now in Win10, confirm that it&#8217;s there by going to &#8220;Device Manager&#8221; and finding the Bluetooth section. If it doesn&#8217;t appear, try rebooting the Win10 VM.<\/p>\n<p>At this point, the Win10 VM has access to the computer&#8217;s Bluetooth and any apps that use Bluetooth (such as indoor cycling training programs) should work.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction While all of my computers run Linux, sometimes it&#8217;s useful to have Windows &#8211; 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 &hellip; <a href=\"http:\/\/mclements.net\/blogWP\/index.php\/2025\/02\/09\/bluetooth-in-a-windows-10-virtualbox-vm\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Bluetooth in a Windows 10 VirtualBox VM<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,14,20,2],"tags":[],"class_list":["post-3454","post","type-post","status-publish","format-standard","hentry","category-bikes","category-exercise","category-games","category-tech"],"_links":{"self":[{"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/posts\/3454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/comments?post=3454"}],"version-history":[{"count":4,"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/posts\/3454\/revisions"}],"predecessor-version":[{"id":3458,"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/posts\/3454\/revisions\/3458"}],"wp:attachment":[{"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/media?parent=3454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/categories?post=3454"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mclements.net\/blogWP\/index.php\/wp-json\/wp\/v2\/tags?post=3454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}