Skip to content
Permalink
Browse files

Added STM32 code, and fixes in Readme.MD (#43)

* added STM32 code

Added STM32 code

Moved some files to different folders, to make the GitHub more userfriendly.

* Removed a file

Removed a file, becuase the info has been added to the main README.md

* Update README.md

* Update README.md

* Update README.md

* Fixed link

Fixed the link for the face foam.

* Fixed typo

Fixed a typo of the Biconvex lenses

* Update README.md

* Fixed typo's

Fixed a few more typo's in the Readme.MD

* Create PULL_REQUEST_TEMPLATE.md

* Added info Vang1 design

Added the amount of screws needed to make the Vang1 VR headset.

* Added images

Added extra images, to help people build the headset.

* Create README.md

* Update README.md

* Update README.md

* Update README.md
  • Loading branch information...
AdmiraalHugo authored and maxime-coutte committed Apr 22, 2019
1 parent aa05bfc commit 5e4482ec4e08a903819cdc55a12ab43940e607ee
Showing with 20,217 additions and 19 deletions.
  1. BIN { β†’ 3D models}/TheYXXY 3D models/Part_1_Eyepiece.stl
  2. 0 { β†’ 3D models}/TheYXXY 3D models/Part_2a.stl
  3. 0 { β†’ 3D models}/TheYXXY 3D models/Part_2b.stl
  4. 0 { β†’ 3D models}/TheYXXY 3D models/Part_2c_Lens_Mount.stl
  5. 0 { β†’ 3D models}/TheYXXY 3D models/Part_2d_Lens_Fastener.stl
  6. BIN { β†’ 3D models}/TheYXXY 3D models/Part_3_Connector.stl
  7. 0 { β†’ 3D models}/TheYXXY 3D models/Part_3a.stl
  8. 0 { β†’ 3D models}/TheYXXY 3D models/Part_3b.stl
  9. BIN { β†’ 3D models}/TheYXXY 3D models/Part_4a_Cover.stl
  10. BIN { β†’ 3D models}/TheYXXY 3D models/Part_4b_Soft_Mount.stl
  11. BIN { β†’ 3D models}/TheYXXY 3D models/Part_4c_Reinforcement_Plate.stl
  12. 0 { β†’ 3D models}/TheYXXY 3D models/Part_5.stl
  13. 0 { β†’ 3D models}/TheYXXY 3D models/Part_6_190mm.stl
  14. 0 { β†’ 3D models}/TheYXXY 3D models/Part_6_250mm.stl
  15. 0 { β†’ 3D models}/TheYXXY 3D models/Part_7_190mm.stl
  16. 0 { β†’ 3D models}/TheYXXY 3D models/Part_7_250mm.stl
  17. 0 { β†’ 3D models}/TheYXXY 3D models/Part_8.stl
  18. 0 { β†’ 3D models}/TheYXXY 3D models/Part_9_extension.stl
  19. BIN 3D models/Vang1 3D models/Images (for Documentation)/M3x20 screws 2.jpg
  20. BIN 3D models/Vang1 3D models/Images (for Documentation)/M3x20 screws.jpg
  21. BIN 3D models/Vang1 3D models/Images (for Documentation)/mounting STM32.png
  22. BIN { β†’ 3D models}/Vang1 3D models/Part010_-_Lens_Adjuster_LEFT.stl
  23. BIN { β†’ 3D models}/Vang1 3D models/Part011_-_Lens_mount.stl
  24. BIN { β†’ 3D models}/Vang1 3D models/Part012_-_Lens_Adjuster_button.stl
  25. BIN { β†’ 3D models}/Vang1 3D models/Part013_-_Lens_Fastner.stl
  26. BIN { β†’ 3D models}/Vang1 3D models/Part01_-_HDMI_Board_plate.stl
  27. BIN { β†’ 3D models}/Vang1 3D models/Part02_-_Logo_front_cover.stl
  28. BIN { β†’ 3D models}/Vang1 3D models/Part02_-_NO_LOGO.stl
  29. BIN { β†’ 3D models}/Vang1 3D models/Part03_-_Screen_frame.stl
  30. BIN { β†’ 3D models}/Vang1 3D models/Part04_-_Eye_piece_B.stl
  31. BIN { β†’ 3D models}/Vang1 3D models/Part05_-_Eye_Piece_A.stl
  32. 0 { β†’ 3D models}/Vang1 3D models/Part06_-_Hardware_box.stl
  33. BIN { β†’ 3D models}/Vang1 3D models/Part06_-_Hardware_box_ARDUINO_DUE.stl
  34. BIN { β†’ 3D models}/Vang1 3D models/Part06_-_Hardware_box_STM32.stl
  35. BIN { β†’ 3D models}/Vang1 3D models/Part07_-_Connector_A.stl
  36. BIN { β†’ 3D models}/Vang1 3D models/Part08_-_Connector_B.stl
  37. BIN { β†’ 3D models}/Vang1 3D models/Part09_-_Lens_Adjuster_RIGHT.stl
  38. +1 βˆ’0 Arduino Due/README.md
  39. 0 { β†’ Arduino Due}/src/libraries/I2Cdev/I2Cdev.cpp
  40. 0 { β†’ Arduino Due}/src/libraries/I2Cdev/I2Cdev.h
  41. 0 { β†’ Arduino Due}/src/libraries/I2Cdev/keywords.txt
  42. 0 { β†’ Arduino Due}/src/libraries/I2Cdev/library.json
  43. 0 { β†’ Arduino Due}/src/libraries/MPU6050/MPU6050.cpp
  44. 0 { β†’ Arduino Due}/src/libraries/MPU6050/MPU6050.h
  45. 0 { β†’ Arduino Due}/src/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h
  46. 0 { β†’ Arduino Due}/src/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h
  47. 0 { β†’ Arduino Due}/src/libraries/MPU6050/examples/IMU_Zero/IMU_Zero.ino
  48. 0 { β†’ Arduino Due}/src/libraries/MPU6050/examples/MPU6050_DMP6/MPU6050_DMP6.ino
  49. 0 { β†’ Arduino Due}/src/libraries/MPU6050/examples/MPU6050_DMP6/Processing/MPUTeapot/MPUTeapot.pde
  50. 0 { β†’ Arduino Due}/src/libraries/MPU6050/examples/MPU6050_DMP6_ESPWiFi/MPU6050_DMP6_ESPWiFi.ino
  51. 0 ...Due}/src/libraries/MPU6050/examples/MPU6050_DMP6_ESPWiFi/Processing/MPUOSCTeapot/MPUOSCTeapot.pde
  52. 0 { β†’ Arduino Due}/src/libraries/MPU6050/examples/MPU6050_DMP6_Ethernet/MPU6050_DMP6_Ethernet.ino
  53. 0 { β†’ Arduino Due}/src/libraries/MPU6050/examples/MPU6050_raw/MPU6050_raw.ino
  54. 0 { β†’ Arduino Due}/src/libraries/MPU6050/helper_3dmath.h
  55. 0 { β†’ Arduino Due}/src/libraries/MPU6050/library.json
  56. 0 { β†’ Arduino Due}/src/libraries/Relativ/KEYWORDS.txt
  57. 0 { β†’ Arduino Due}/src/libraries/Relativ/Relativ.cpp
  58. 0 { β†’ Arduino Due}/src/libraries/Relativ/Relativ.h
  59. 0 { β†’ Arduino Due}/src/libraries/Relativ/library.json
  60. 0 { β†’ Arduino Due}/src/libraries/readme.txt
  61. 0 { β†’ Arduino Due}/src/main/main.ino
  62. +29 βˆ’0 PULL_REQUEST_TEMPLATE.md
  63. +16 βˆ’19 README.md
  64. +1,457 βˆ’0 STM32/STM32_BlackPill/I2Cdev_PillPatch.cpp
  65. +278 βˆ’0 STM32/STM32_BlackPill/I2Cdev_PillPatch.h
  66. +3,213 βˆ’0 STM32/STM32_BlackPill/MPU6050.cpp
  67. +1,032 βˆ’0 STM32/STM32_BlackPill/MPU6050.h
  68. +747 βˆ’0 STM32/STM32_BlackPill/MPU6050_6Axis_MotionApps20.h
  69. +852 βˆ’0 STM32/STM32_BlackPill/MPU6050_9Axis_MotionApps41.h
  70. +31 βˆ’0 STM32/STM32_BlackPill/Relativ.cpp
  71. +24 βˆ’0 STM32/STM32_BlackPill/Relativ.h
  72. +172 βˆ’0 STM32/STM32_BlackPill/STM32.ino.BLUEPILL
  73. +152 βˆ’0 STM32/STM32_BlackPill/STM32_BlackPill.ino
  74. +216 βˆ’0 STM32/STM32_BlackPill/helper_3dmath.h
  75. +1,457 βˆ’0 STM32/STM32_BluePill/I2Cdev.cpp
  76. +278 βˆ’0 STM32/STM32_BluePill/I2Cdev.h
  77. +44 βˆ’0 STM32/STM32_BluePill/Relativ.cpp
  78. +22 βˆ’0 STM32/STM32_BluePill/Relativ.h
  79. +152 βˆ’0 STM32/STM32_BluePill/STM32_BluePill.ino
  80. +1,457 βˆ’0 STM32/libraries/I2Cdev/I2Cdev.cpp
  81. +278 βˆ’0 STM32/libraries/I2Cdev/I2Cdev.h
  82. +38 βˆ’0 STM32/libraries/I2Cdev/keywords.txt
  83. +13 βˆ’0 STM32/libraries/I2Cdev/library.json
  84. +3,213 βˆ’0 STM32/libraries/MPU6050/MPU6050.cpp
  85. +1,032 βˆ’0 STM32/libraries/MPU6050/MPU6050.h
  86. +747 βˆ’0 STM32/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h
  87. +852 βˆ’0 STM32/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h
  88. +318 βˆ’0 STM32/libraries/MPU6050/examples/IMU_Zero/IMU_Zero.ino
  89. +374 βˆ’0 STM32/libraries/MPU6050/examples/MPU6050_DMP6/MPU6050_DMP6.ino
  90. +242 βˆ’0 STM32/libraries/MPU6050/examples/MPU6050_DMP6/Processing/MPUTeapot/MPUTeapot.pde
  91. +370 βˆ’0 STM32/libraries/MPU6050/examples/MPU6050_DMP6_ESPWiFi/MPU6050_DMP6_ESPWiFi.ino
  92. +188 βˆ’0 STM32/libraries/MPU6050/examples/MPU6050_DMP6_ESPWiFi/Processing/MPUOSCTeapot/MPUOSCTeapot.pde
  93. +537 βˆ’0 STM32/libraries/MPU6050/examples/MPU6050_DMP6_Ethernet/MPU6050_DMP6_Ethernet.ino
  94. +151 βˆ’0 STM32/libraries/MPU6050/examples/MPU6050_raw/MPU6050_raw.ino
  95. +216 βˆ’0 STM32/libraries/MPU6050/helper_3dmath.h
  96. +18 βˆ’0 STM32/libraries/MPU6050/library.json
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File renamed without changes.
@@ -0,0 +1 @@
**PLEASE NOTE**; We highly recommend that you use the STM32 tracker because it has proved to be more stable than the Due based one. The Due code has recently been reported to throw compiler errors, and the Due trackers have exhibited stability issues. Because of this, we will be phasing out support for the Arduino DUE code in the next couple of months. *(NOTE added on Apr 17, 2019)*
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,29 @@
Hi, thanks for your contribution! Take a minute to tell us more about your changes:
<!--- Provide a general summary of your changes in the Title above -->

## Description
<!--- Describe your changes in detail -->

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, tests ran to see how -->
<!--- your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
@@ -47,33 +47,34 @@ build your VR headset too. </p>

# Getting Started ⚑️

Relativ is based on <a href="https://github.com/relativty/wrmhl">WRMHL</a> and <a href="https://github.com/relativty/fastVR-sdk">FastVR</a>.
**PLEASE NOTE**; We highly recommend that you use the STM32 tracker because it has proved to be more stable than the Due based one. The Due code has recently been reported to throw compiler errors, and the Due trackers have exhibited stability issues. Because of this, we will be phasing out support for the Arduino DUE code in the next couple of months. *(NOTE added on Apr 17, 2019)*

## What you'll need

### What components ?
There are a few variants of Relativ. The original design by the founders **(deprecated)** and two new version by TheYXXY and Vang1 based on a on a model from <a href="http://horizonlab.co/2017/05/28/vr-headset-fully-3d-printed/">Horizon Lab</a>. Shoutout to them for making this possible and allowing their design to be modified! </p>

##### Parts needed for all the designs:
* Arduino Due, $34 for the official one or $10 for a Chinese clone
* STM32, $3,50 [recommended](https://robotdyn.com/stm32-arm-arduino-mini-system-dev-board-blue-pill-with-arduino-bootloader.html "recommended")
* ST-link V2 USB ~$3,00 [recommended](https://www.amazon.com/ "recommended") ⚠️ Price may vary a lot
* GY-521 MPU-6050, $1
* 5.5 inch 2560*1440 2K LCD Screen HDMI to MIPI, up to 100€ on AliExpress (<a href="https://www.aliexpress.com/item/5-5-inch-1440x2560-2K-IPS-LCD-screen-display-with-HDMI-top-MIPI-controller-board-for/32817672501.html">recommended</a>) ⚠️ Price may vary a lot
* Face foam, about $4, see [here](https://www.ebay.com/itm/Face-Foam-Replacement-Eye-Masks-Pads-Cover-Fit-For-HTC-Vive-VR-Goggles-Headphone/152798949280?_mwBanner=1&_rdt=1 "here")
* 5.5 inch 25601440 2K LCD Screen with an HDMI to MIPI board, between €65 and €95 on AliExpress (<a href="https://www.aliexpress.com/item/5-5-inch-1440x2560-2K-IPS-LCD-screen-display-with-HDMI-top-MIPI-controller-board-for/32817672501.html">recommended</a>) ⚠️ Price may vary a lot
* Face foam (10mm wide), about $4, see [here](https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=face+foam+vr+headset+10mm&_sacat=0 "here")

###### Extra needed for the TheYXXY design:
* Biconvex lens, Focal length 37mm, 45mm diameter <a href="https://www.ebay.com/">recommended</a>
* 2 Biconvex lenses, Focal length 45mm, 37mm diameter <a href="https://www.ebay.com/">recommended</a>
* 4 M3 Screws and 2 M2 screws, both with nuts, $3 - alternatively you can use hot glue if M2 screws are not available
* TPU 95 filament is recommended in addition to the normal PLA, and a printer which supports printing it
* A screen which has a cable with a 90 degree bend just like the <a href="https://www.aliexpress.com/item/5-5-inch-1440x2560-2K-IPS-LCD-screen-display-with-HDMI-top-MIPI-controller-board-for/32817672501.html">recommended</a> one. For the direction: it should go up behind the screen when the small non-screen part is on the right while looking at the screen.

###### Extra needed for the Vang1 design:
* Biconvex lens, Focal length 37mm, 45mm diameter <a href="https://www.ebay.com/">recommended</a>
* Headstrap <a href="https://www.ebay.com/itm/SJCAM-SJ4000-SJ5000-Xiaomi-Yi-Head-Strap-Mount-Elastic-Adjustable-Head-Band/272024772003?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649">recommended</a> (needs a bit modification)
* 2 Biconvex lenses, Focal length 45mm, 37mm diameter <a href="https://www.ebay.com/">recommended</a>
* Headstrap <a href="https://www.ebay.com/itm/SJCAM-SJ4000-SJ5000-Xiaomi-Yi-Head-Strap-Mount-Elastic-Adjustable-Head-Band/272024772003?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649">recommended</a> (needs a slight modification)
* ABS or PETG filament with 20% infill is recommended, but PLA also works fine. All the parts can be printed without infill.
* M3 screws (More info will be added soon!!)
* M3 screws (7x M3x20 and 6x M3x10)
###### Extra needed for the old (deprecated) design:
* Fresnel lens Focal Length 80mm, $3 (<a href="https://www.ebay.com/itm/2Pcs-Fresnel-lens-Focal-Length-40-50-55-60-70-80mm-for-Google-Cardboard-3D-VR/201984369021">recommended</a>)
* 2 Fresnel lenses Focal Length 80mm, $3 (<a href="https://www.ebay.com/itm/2Pcs-Fresnel-lens-Focal-Length-40-50-55-60-70-80mm-for-Google-Cardboard-3D-VR/201984369021">recommended</a>)
<img src="/img/component.JPG" width="100%">
@@ -85,22 +86,18 @@ You can either install it using [Git](https://git-scm.com/) or direct [Download]
# Clone this repository
$ git clone https://github.com/relativty/Relativ
```
Copy all folders in **Relativ/src/libraries** and past them in your Arduino Libraries folder: **Documents\Arduino\libraries**. You're now ready to build the headset!
# Building the hardware
# Building the headset
**A detailed documentation can be found on our <a href="https://wiki.relativty.net/index.php/Main_Page">wiki<a/>!**
Now what you need to do is 3D-print the hardware; if needed you can change any models with provided Source Files.
Detailed instructions and parts lists can be found in the Relativ Wiki at:
⚠️ PAY EXTRA ATTENTION TO THE SCREEN, IT'S VERY FRAGILE ⚠️
https://wiki.relativty.net/index.php/STM32
# Building the software
Make sure you have all the libraries needed installed and upload the following program to the Arduino:
Basically, copy the contents of **"library"** folder into your Arduino libraries folder, then copy the main STM32-Tracker folder (which contains the **STM32_BlackPill** and **STM32_BluePill** folders) into your main Arduino folder. However, all the critical information that you need to build this tracker is in the Wiki, so you really do need to read it before you start this build.
Path: Relativ/src/main/main.ino
Because we had to edit some of the main library files so that they would compile on an STM32 board, we have included them in each sketch folder (so that the changes don't mess up any other sketches that use those particular libraries). However, bacause other parts of the code rely on the un-patched libraries, we have to make the original libraries available in the main arduino libraries folder as well.
Our documentation can be found on our <a href="https://wiki.relativty.net/index.php/Main_Page">wiki<a/>.
These really should work straignt out of the box - however, if they don't then please raise a GitHub issue or message us on the Relativ Discord.
# Play some demos or use SteamVR
Oops, something went wrong.

0 comments on commit 5e4482e

Please sign in to comment.
You can’t perform that action at this time.