DIY Wind sim with Arduino Uno Rev 3 and Arduino Motor Shield Rev 3
Hi all, after watching a tutorial by Boosted Media, which can be found here:
I went ahead to build my own and came up with a few problems, and from looking at various forums it seems like there are a number of issues, and only one post briefly mentioned a possible solution, but not many people seemed to be able to figure it out. So after getting it figured out I thought I'd share it. Total cost for project was £120.
Please forgive some of my terminology/explanation, this is my first Arduino project, I haven't done many electrical projects at all (definately nothing like this) and this is my first time using the Simhub. Anyway...
It will be worth watching part 1 and 2 of the tutorial via the link above.
Now the changes to that tutorial:
The Arduino Motor Shield Rev 3 looks like this:
I got the following parts:
Note that the Arduino Motor Shield Rev3 can provide up to 4 amps, 2 amps per motor channel, but once 2amps total is reached the voltage drops to 9v. My fans are apparently 1.4amps per fan, so they breach the 2amps total, but the wind force is still enough at 9v.
Arduino Uno Rev3
Arduino Motor Shield Rev3 - Later swapped to a Cytron MDD10 (for dual channel), or MD10 (single channel), as these can provide more power to the fans, and I would recommend these instead of the Arduino Motor Shield. See my updated post below for details re the Cytron motor shield.
Other parts can be found easily enough on ebay/amazon as per the youtube tutorial. I have tried the 120mm to 76mm reducers, and vent hose/pipe, however I found that the fan airflow significantly dropped, so I have now removed that and am using the fans on their own blowing straight at me. I would recommend doing this, and just reducing the % power to the fans later in Simhub if you want to reduce the noise level.
In the tutorial it mentions about the jumper, this is done differently with the Rev 3. On the back of the motor shield, there is a part which says Vin connect. See the following pic:
There will be three dots of solder above it. The left two square pads of solder (circled in red in the pic above) are connected by a copper trace between them which you cannot see. To make sure each board is being powered seperately (the arduino uno by the usb cable, and the motor shield by the power supply), you need to take a craft knife and run it between the two square pads of solder (marked in green on the pic above), to cut through the copper connection. Before you do it, get a voltmeter if you have one, and test for continuity between the two pads. You should get a low reading of something like 0.2 to 0.4. Then use the knife to cut the copper, and check for continuity with the voltmeter between each attempt of 'scoring/cutting'. When the voltmeter stops giving a reading, you have managed to cut through.
Next job is to connect the wires. So follow the tutorial and cut the wires and strip the ends for the fans and power supply.
With the fans, one of the wires will have white lines along it, that is the negative wire, whilst the other wire without the stripes is positive.
With the power supply, the white wire goes into the vin terminal, and the black wire goes into the ground/negative terminal marked GND (bottom left of the picture of the board above).
Once they are all connected it should look like this:
Now connect the Arduino Uno rev 3 to the Arduino motor shield rev 3, plug in the power supply, and plug in your usb cable to the arduino uno and PC.
Download the Simhub software. Once you have the software open, complete the following steps:
- On the left hand side go to settings, and turn on/activate the arduino section.
- On the left hand side, go to Arduino, then click 'my hardware' towards the top left.
- Click on single arduino, then click on open arduino setup tool.
- Towards the top right, select your board (Arduino Uno), and select the Arduino Serial Port that you are using (this will be the usb port). Tick the box that says 'I understand...'
- On the left hand side, under General, name this Arduino setup, then scroll down to SHAKEIT PWM Outputs. Click the plus sign so it shows 2 (if you are using two fans). For PWM Output 1 pin, select 3. For PWM Output 2 pin, select 11. I left the other options at default.
- Towards the top right, click 'Upload to Arduino'. It will then run the process and complete.
- Go back to the main simhub. Click on ShakeIt Motors on the left hand side. At the top there should be three tabs, make sure you are on the Effects Profile tab. Scroll down and enable Speed. Move the volume slider to 100% (you can vary this later). Just to the left of the 'Speed' heading, there is an arrow, click it to expand it. The details under here are explained in the youtube tutorial, but I set it to manual, then effect low at 20, and effect high at 150.
- With the three tabs at the top, go to 'Motors Output'. Enable 'Arduino Motors and Fans', and click the arrow to the left of this to expand it. Scroll down and turn on Speed in channel 1 and channel 2. Towards the top right there is output tuning, I set this to threshold 0%, and minimum force 30%. These are explained a bit more in the youtube tutorial.
- Go back to the 'Effects Profile' tab, and under the Speed Section, at 'Live Effects' there should be a test button in the graph section, click on that several times in quick succession and your fans should spin if it is succesfully setup. There should be some lights next to the terminals on the motor shield where the fans are connected which light up when you click test which will show power is being provided.
- On the left hand side, click on Games. Click on the game you want to use it in, and it will install/update some files so it will work.
That should be it!
Now launch the game, and see if it works as expected. Then adjust the volume slider in the effects profile tab if you want to reduce the maximum fan speed.
You might need to get a heatsink for the chip on the Motor Shield, it is the black rectangle in the middle of the shield. I have purchased some Raspberry Pi ones and will use that.
Please let me know if this works for you! It is difficult to get hold of the version of the arduino uno and motor shield that boosted media use, so hopefully this will let others use the latest versions.
Good luck all!
You sir are a legend. Thank you so, so, so much for sharing this information. I have been battling with this for a couple of weeks and was about to give up. I am using a Cytron Shield MDD10 motor shield with a rev 3 arduino uno. The Cytron Shield MDD10 is a 10 amp motor shield for two fans, each running at 10A constant, so it will unleash the full power of your fans, which are the same as mine I think. if you upgrade your shield to this model you will have to scratch the 5V supply circuit on the bottom as you described for the Arduino shield, and set the PWM1 jumper to pin D3, and the PWM2 jumper to pin D10. Output settings repeated as 3 and 10 in the Arduino sketch as you described.
Once again thank you. What a star you are.
@gazzip so glad it has helped someone! I had almost given up when I found a bit of info here and there to piece together what I had to do, which was a bit confusing as I'm relatively new to this.
I have actually ordered one, then realised I didn't...I ordered/have been looking at the Cytron MD10 motor driver, not the MDD10. So what I think I have is exactly the same, but terminals only for one motor. I will try putting both fans to the same motor terminals, and it is still rated up to 10A for that one motor, so should still work, but it might only detect one motor in simhub.
Thanks for the info regarding the Cytron Shield 👍 I'll update with how mine progresses.
So I have now fitted both fans to the Cytron MD10 motor shield, with fixing both fans to the A&B terminals (meant for one motor control). There was no need to cut any traces on the board/power supply link between it and the Arduino Uno, as there is no link! (I think :D) In my view this makes it easier, as the USB cable is plugged into the Arduino Uno and PC at all times, so it has its power supply, and the motor shield has its own as before with the Arduino motor shield. It also means if you want to sell it later, you haven't taken a knife to anything which might reduce people's interest in it. So it was simpler to setup, and can now provide 10amps (15 at peak) to whatever is connected to the A&B motor terminals, although I still only have the 3amp power supply as that's all I currently need. In Simhub when I setup the Arduino, under the SHAKEIT PWM Outputs section, just select 1 (not 2 as with the Arduino motor shield).
Another couple of benefits I found with using the Cytron MD10 instead of the Cytron MDD10 with two fans in the one motor terminal, is that the MD10 is cheaper, and with both fans into the one terminal the power to the fans is provided at the same time. For some reason my fans could spin up/stop slightly out of siink with the Arduino motor shield which meant the "wind" could be on half my face/body, not the other at certain points which was even more unrealistic/a bit of a immersion breaker.
Good luck again all!
Thanks, I appreciate the help. This was the missing link for me. 👍
Hi, I am currently trying to build a setup like yours but I think I have overdone it with the fans 😀
They take about 8-9 seconds to spin up to full speed, which is of course way too slow.
How long do your fans take to spin up and do you have to wait until they spin down again for braking?
Fan reaction time is way too slow for me with my fans and I am looking for new ones. I already got some other fans but they are too weak for my liking...
@ferrari2k Hi - My fans spin up and slow down pretty quickly, with no real lag when braking or accelerating. What size and spec fans are you using? I'm in the UK and I used these fans: https://read.amazon.co.uk/kp/embed?linkCode=kpd&ref_=k4w_oembed_cCK7wKNpBLi3Kc&asin=B079G4TVKZ&tag=kpembed-20&amazonDeviceType=A2CLFWBIMVSE9N&from=Bookcard&preview=inline
I have now done a video of people prefer to watch rather than go through the above, the video can be found here:
👍 Thanks for the excellent clear step-by-step video. Wish I’d had that when I started trying to install fans
I tried the motor shield route a while ago but couldn't get it working so I went the PWM route with two 4 pin fans which actually turned out to be simpler and a bit cheaper with no shield.
I don’t want to take the focus away from your project, but for anyone who is curious, here’s what I did just fumbling through and not really understanding what I was doing at first:
It’s a bit hidden away in the SimHub documentation but there’s a direct link next to the “Shakeit PWM Fans Output” settings in the Arduino programming section of SimHub.
Only three of the four fan pins are used. The positive and ground pins are connected directly to an external 12v power supply. The PWM pin on each fan is connected directly to two Arduino pins. The ground lead is also connected to the Arduino ground pin (for synchronisation I think).
I use the Shake it Wind plugin in SimHub to control it rather than the Shake it Motors. It all works perfectly for me, but maybe I was just lucky with the fans I bought (Delta AFB1212SH) as there's a warning in the documentation of problems with fans not capable of totally stopping.
@chris99 Glad you liked the tutorial, I like your solution and thanks for sharing it. The more the merrier, and hopefully we'll get more people siming with fans, I couldn't do without them for VR, and they have the added benefit of keeping you cool when a vr headset could easily make you too hot 👍
So i have an Uno3 compatible ( https://www.makerstore.com.au/product/arduino-compatible-uno-r3-with-usb-cable/ ) stacked with the Dual Motor Driver Shield ( https://www.makerstore.com.au/product/elec-dual-vnh519/ ) and using the exact same 4000rpm fans that you use. I'm powering the Shield with a 15v 3A power supply.
I have uploaded the Simhub firmware using option for my Shield, which was listed in Simhub.
Using the Static Wind Effect as a test for fan output level & noise.
The fans operate, but are very loud and very windy. I have to use 35% output level to get 12v max for the fans. Even doing this the fans are blowing a gale and the noise is excessive. When i try to drop the levels to a comfortable level, they surge between 0rpm and the chosen level. They dont appear to run below 2000rpm.
Measuring the voltage shows it surging from a start-up voltage of 10 to 12 volts, getting the fan spinning then dropping the voltage to 3.9volts and cycling again. If you increase the fans to a stable voltage of 4.3 volts the fans stay on, but the rpm is too high.
I've got two sets of these fans, which do the exact same thing.
I've tried connecting some PWM 140mm fans, which work correctly all the way down to 0rpm. I can set any level on the 'Static Wind Effect' sliders and the fans work as they should. I can even use a 4pin pwn fan. The issue with these fans is they are only rated to 1500rpm max, which isn't enough output for the windsim 'Speed with Curving' Effect.
Does anyone else have issues with these fans and there inability to work below 2000rpm?
@yobrevar Hi, I didn't use the static wind effect, I used the Shakeit Motors tab. Under that I ammended the settings under speed. I don't know if you have the same issue when doing it through that? You also mentioned 15v power supply, did you mean 15v or 12v?
I have been happy with mine with the parts mentioned and settings as stated, but then I do have headphones in when using it, hope you've got yours sorted 👍
Do you have an Amazon link for the power supply as the link above is no longer working and I'm afraid I'm confused.
Can you help me because above you talk about Arduino Motor Shield REV3 and below Cytron MD10. What is better and more suitable for this kind of ventilation please? thank you so much for your tutorial and help.