Back around September 2025 I found my old ZMR250 in the garage. It was build in 2014 with an OpenPilot CC3D flight controller, Orange dsmx receiver, individual escs, 1806 motors, 6×3 props and a 25mW analog FPV system.
I asked on the Painless360 live-stream about whether to refit it with a new flight stack or just buy a new frame. Lee (painless360) was in favour of the refit, so I bought a SpeedyBee F405 V3 stack and some motors from AliExpress.
Before doing the conversion I wanted to try flying it as-is. I found you could still download LibrePilot, so used it to setup the quad with a multi-protocol module for the old dsmx receiver, no longer having a Spektrum transmitter.
On the initial attempts the quad kept flipping on power up. I had an OpenPilot Revo as well, so replaced the CC3D and at the same time replaced the receiver with an ELRS PWM one. With this combination it flew and I was able to run the autotune. The autolevel wasn’t great, but acro was fine. The biggest issue was the lack of range on the 25mW analog FPV system.
The project went on hold for a while, but eventually made it back to the front of the project queue.
I (over)designed all the 3d printed parts. They all print without supports in 95A TPU. I added the side plates near the end of the project after Lee favoured some during a quad review.
The SpeedyBee F405 V3 I’d purchased always powered up into DFU mode, but as it had been 6 months since I purchased it and I had soldered all the connections, i thought it unlikely, I could get it replaced under warranty, so I bought a new one. This time I tested it immediately and it turned out to have a faulty voltage sensor. It took a couple of months, but I eventually got it replace with a V4.
In the mean time, I bought a SpeedyBee F405 V5 from hobbyrc.co.uk which worked, allowing me to complete the build and configuration. It then sat on the build table for a month while I waited for chance to fly.
The first flight was a bit of a non-event. It popped up into the hover line-of-sight and then flew again FPV. The flight was relatively short as I was feeling intimidated by having quad racing world champion Luke Bannister (banniukfpv) and now hollywood film pilot stood just behind me.
A 2208 Size 2300kV motor swinging a 6×3 propellor, provides more thrust with a lower current draw at the same pitch speed as the supplied 1406 3800kv motor with the 4×2.5 prop. The extra weight at the back of the wing will reduce, or even remove the need for balance weights to achieve the correct centre of gravity (CofG) with a 3S Li-ion battery pack.
The Issue
The SonicModel Baby AR Pro (BARP) is a great little flying wing that can take an iNav flight controller and digital FPV system. The supplied motor, a 1406 3800kv outrunner with a 4×2.5 propeller, provides perfectly adequate performance with a 3S battery pack.
There are two issues:
The nose is poorly designed for digital FPV systems where the transmitters get hot quickly and need to be kept in the air stream. To achieve this the nose needs a lot of surgery and adds weight right up in the nose.
To get the right CofG requires either lightweight battery or additional balace weights near the motor.
In my case a 3S 1800mAh LiPo got the CofG about right, but would limit the flight duration. I wanted to use a 3000mAh 16850 Li-ion pack which made the craft nose heavy, and require adding a good amount of metal weights to counterbalance it.
The Solution
I had the thought that if I needed to add weight to the back of the machine, then why not use a bigger motor? The motor is as far back as it is possible to be, so will still be lighter than using metal weights. Also, a bigger motor can swing a bigger more efficient propeller in the hope of reducing the current draw and extending the flight time further.
In order to maintain the original performance we want the new motor/prop combination to offer a similar speed range as the supplied combination. The trial motor is an Emax 2208 2300kV. Theoretically, to get the same top speed with this motor we multiply the original propellors pitch my the ratio of the old and new motor’s kV.
New pitch = 2.5 inches x 3800kV / 2300kV = 4.13 inches ,approximately 4inches.
In order to test this I needed a test stand, that would allow me to measure the thrust, current draw, supply voltage and RPM whilst congtrolling the motor speed. Commercial units exist to do this, but where is the fun in that.
Definitions
The following terms will be used alot, so it is worth defining them.
Kv : Theoretical free running rpm of motor per applied volt. While the speed is controlled by the ESC, if the ESC ran perfectly with zero switching latency, this is the speed that could be attained.
Propellor specification: Propellors are traditionally specified by their outside diameter followed by their pitch (E.g. 4×2.5). This is traditionally quoted in inches, although some propellors are labelled with metric equivalents as well.
Propellor pitch : The theoretical distance the propellor moves forward in one rotation.
Pitch speed: The theoretical speed of a propellor at a given rpm (pitch x rpm).
The Test Stand
Designing the test stand took longer than desired, but that was more to do with the available time and changes to hardware choices. Full details of the components, wiring, software and 3d printed parts will be described in a separate post. A quick summary of the parts is shown below.
Current & Voltage sensor: Adafruit INA260 High or Low Side Voltage, Current, Power Sensor
RPM Sensor: Built into ESC
Electronic speed control (ESC): Hobbywing Platinum Pro 25A
Microcontroller: Teensy 4.0
Touch screen: 3.2 Inch 320X240 SPI Serial TFT LCD Module Display Screen ILI9341
Power supply: 3S 3000mAh Li-ion battery pack.
Screen Interface
The screen layout was designed to be simple and informative.
At the top is a large STOP button that will set the ESC to zero and stop the motor.
At the bottom are buttons that will either increase or decrease the throttle by 10%.
There is a Zero button to remove any offset from the load cell when the motor is off. When the motor is running this will reset the rpm averaging accumulator.
On the left is a slider that shows the throttle position. Zero at the bottom, Full at the top.
On the right are sliders that show the load and current reading as a ratio of the sensors full scale deflection.
Power requirements.
The microcontroller and sensors can be powered by either a USB connection or a 5V power supply, but not both at the same time without risk of damaging the Teensy.
The ESC/motor are powered from a 3S Li-ion battery pack through with XT30 connectors.
Result recording
The screen shows the following:
ESC input PWM signal in microseconds (μs)
Thrust on grammes (g)
Battery draw current and voltage
RPM
As well as the screen display, if the microcontroller is connected to the Arduino IDE through USB the results will be sent to the console when the motor speed is changed or the stop button is pressed. Once the test is done the results can be saved to a comma separated value (csv) file and then imported to Excel.
Note that the thrust, voltage and current are saved in grammes, millivolts and milliamps respecively to minimise calculations in the program loop. These were converted to Newtons, Volts and Amps in the spreadsheet.
The RPM is recorded as an average so is affected by the lower rpm while the motor is accelerating. The error can be seen as the rpm increases with time before finally stabilizing. This can be worked around by pressing the Zero button once the motor has reached its new speed. The rpm average is reset and the stable value is achieved much quicker.
Results
Factory setup – 1406 3800kv motor with 4×2.5 prop
ESC Input (μs)
Thrust (N)
Current(A)
Volts(v)
RPM
1000
0
0.05
12.28
0
1100
0.088
0.21
12.27
5435
1200
0.324
0.58
12.24
9367
1300
0.706
1.2
12.18
13194
1400
1.059
2.18
12.11
15927
1500
1.442
3.08
12.02
18274
1600
1.864
4.52
11.9
20722
1700
2.345
6.25
11.77
22875
1800
2.766
8.5
11.64
24535
1900
3.169
10.64
11.45
26047
2000
3.551
12.66
11.27
27238
Calculations
From these raw values, the following was calculated.
The data shows the supply voltage sagging from 12.28V at rest to 11.27V at maximum rpm which is caused by the internal resistance of the battery. This is why the calculations use the measured voltage and the graphs show electrical power rather than the current.
To check the code for reading the rpm from the ESC, the maximum theoretical rpm was calculated based on the Kv and nominal battery voltage. The calculated maximum rpm was noticably higher than the measured rpm, although within the same order of magnitude. The graph below gives a comparison of the theoretical and measured RPM at the recorded voltages.
At full throttle the measured RPM with the 4×2.5 prop is only 63% of the theoretical free running rpm.
At the end of the test the motor was very hot, too hot to touch, even though the motor was in the air stream. Initially, I thought part of the test rig must be rubbing on the motor, causing the loss, but it span freely when flicked by hand.
As a test, I re-ran the test with the propellor removed. The graph below shows two runs of the measured RPM tracking the theoretical nicely. At about 70% throttle the difference is about 10% which is an acceptable margin considering manufacturing tolerances and experimental error.
Above 70% throttle the BARP motor lost sync with the ESC causing a horrible noise and drop in RPM. This is to be expected as to quote the manual “The maximum motor speed can reach 210000 RPM (for 2-poles), 70000 RPM (for 6-poles) and 35000 RPM (for 12-poles)”. This is a 12 pole motor so the ESC is holding sync right up to the published limit.
With the results validated, here are the performance curves for the standard BARP 1406 3800kV motor 4×2.5 prop combination.
Based on these figures we are looking for a new motor/prop combination the can deliver about 3.6N thrust at 28.8 m/s pitch speed and under 142 Watts.
Alternative motor – 2208 2300kv motor with various props.
The tests were done with a selection of 5 and 6 inch diameter props with pitches between 3 and 4.5 inches. The selection was chosen, purely by what I already had available at the time.
The Propellors were: 5×4.5 (green), 6×3 (black), 6×4 (grey) and 6×4.5 (orange)
Repeating the test for each propellor, produced the graph below. As with the 1406 motor, the actual free running speed was higher than the theoretical valve by about 12%. The smaller diameter (5×4.5) and smaller pitch (6×3) propellors have the higher rpm figures.
The next graph shows the pitch speed as a function of throttle percentage. The red line is the maximum pitch speed for the BARP 1406 3800kV motor with the 4×2.5 propellor.
This graph, and the performance graph below shows the 6×4.5 prop to be a non-starter. With its wide chord bull nose design it doesn’t reach the required pitch speed and while it achieves the thrust, the current draw is higher. This is an old style quadcopter propellor and it may be a more modern fixed wing propellor like the HQProp Thin Electric 6×4.5 E Prop would give better results.
Replacing the 6×4.5 prop data with the factory (BARP) motor/prop data gives the graph below. The factory data is shown in red and a vertical grey line has been added to show its maximum pitch speed.
The 6×4 propellor is designed for fixed wing aircraft, and while the pitch is only slightly smaller than the 6×4.5, it produces more thrust at a higher pitch speed. Compared to the factory setup, it produces an extra 0.5 Newtons of thrust, with 40W less power draw, at about 82% throttle. At full throttle you will get some extra top speed for about 10W higher power draw.
The problem with this particular 6×4 propellor is that it is not designed to be installed as a pusher and won’t fit on the motor without the blades being cut by the hub. Adding a spacer to solve this doesn’t leave much of the shaft protruding for the prop nut. APC make a dedicated 6×4 Pusher that would be worth testing.
The 6×3 propellor looks an excellent match. The maximum pitch speed is slightly higher the factory setup, but the thrust is 1.0 Newtons higher and the power 40 Watts lower. The lower pitch allows it to be fitted as either a tractor or pusher without issue.
The 5×4.5 is a difficult propellor to compare. The factory pitch speed is reached at 57% throttle, but with only half the thrust. The factory thrust occurs at a 40% higher pitch speed, which is about 87% throttle. The power at this point is about 60 watts less than the factory setup. At full power the thrust is about 0.7 Newtons higher than factory, while the power draw is 16 watts lower. This really needs flight testing for comparison. It could make the BARP even more of a holigan.
Conclusion
Based on these results the Emax 2208 2300 kV motor with a 6×3 propellor looks the best substitute for the factory fitted 1408 3800kV motor with 4×2.5 propellor. It has a similar pitch speed range, but with higher thrust and lower power draw.
The Emax 2208 2300 kV motor with a 5×4.5 propellor could also be a good choice, but further testing is needed.
The 6×4 and 6×4.5 propellors used in the test are not a good substitute, but others of the same diameter/pitch, purposely designed as fixed wing pusher props could be promising.
Further Testing
The tests done to date have all been based on static thrust. This is ok for quadcopters where it is representive of a motor and propellor in the hover. To match a fixed wing setup a dynamic testing regime is needed. Something like a wind tunnel loop to feed the output air back to the input.
The props used in the tests were all ones I already had to hand. It would be worth obtaining and testing some props that better match the application.
This blog has been fallow for about six years, but I’m planning to start posting again. To begin with I’ll be posting some photos taken at my local RC jet meet and then I’ve got project to convert some old 27MHz and 35MhZ RC transmitters to 2.4GHz.
Foam board has become a common material for scratch building RC aircraft. Flitetest.com provide a good range of free plans using this material. The problem is that the foam board available outside the USA is significantly heavier than that on which the designs are based. This leads to heavy fast flying planes that are not beginner friendly. This article looks at two enlarged FT designs that restore the good flying qualities of the original designs.
Flitetest.com (FT) has been around since 2010 publishing high quality video episodes on all aspects of radio control flight. They are strongly focused on community with forums refreshingly free of negativity. They are well known for their range of free plans with designs from beginner to advanced each with a dedicated build video.
The main build material is foam board, which consists of a polystyrene core sandwiched between two layers of paper. You will see it referred to by names like Dollar Tree foam board or DTFB, Bazics foam board and Adams Ready-Board which is the American manufacturer. Other makes of foam board are available, but tend to be significantly heavier. Adams Ready-Board is not freely available outside the United States, so the rest of the world has to be content with the heavy stuff.
To give some idea of the problem Adams Ready-Board weights 297 g/m². The lightest foam board I have found in the United Kingdom weighs 450 g/m², with some sheets reaching almost 600 g/m².
Before I was aware of this, I bought two 10 sheet boxes of A1 foam board: one in black the other white. I used the black to build an FT Nutball and the white to build an FT Flyer. both are beginner designs. Having used the recommended electronics, with a 2S 500 mAh battery, I was surprised to find both designs exceedingly tail heavy. By using a bigger motor and heavier 3S 1300 mAh battery, I was able to get the centre of gravity (CofG) in the right place, but the models were now twice the design weight. They did fly, but were very fast and not really suitable for a beginner.
There was no way I could reduce the weight using the same foam board, but having only used two sheets out of twenty I didn’t want to buy anything else. Heavy models are not necessarily bad. The problem is the weight in relation to the model’s size or more specifically the wing area. This is expressed mathematically as the wing loading, defined as the models weight divided by its wing area.
The total weight is made up from two parts. There is the airframe weight which will increase with the wing area. Then there is the battery, motor and control electronics. As I was already using a bigger battery and motor to get the heavy foam model to balance, this could stay the same. As the fixed component is a large part of the total, the wing loading will decrease with increasing wing area.
Nutball
The design weight of the FT Nutball is 212g plus 30.5g for the battery. The wing is 490mm diameter. Therefore the wing loading is (212 + 30.5 ) / (3.142 x 490² / 4) = 0.00128 g/mm² or 1.28 kg/m².
It turned out for the Nutball that increasing the diameter to 740mm reduced the wing loading back to 1.28 kg/m² using the same electronics. This was also a good size for cutting the model from two A1 sheets. I kept the power pod the original size, but moved it forward slightly to help maintain the CofG position.
Size comparison of Big Nutball to original FT Nutball.
The plans have dimensions for those without access to an A1 plotter or don’t want to stick together the tiled A3 prints. Construction follows the original video. You just need to tape on the port wingtip before gluing and use the included gauge instead of the power pod for setting the dihedral.
The push rods are long so use three zip ties to keep them straight.
Flyer
The big Flyer design followed the same procedure. The original target wing loading was 1.69 kg/m² with its 660mm span. Increasing the span to 1000mm got the wing loading down to 1.65 kg/m² with the heavy foam board. Again I extended the nose to ease the CofG placement.
In a departure from the original I added was a KF step. This is an extra thickness of foam added to the front 40% of the wing, with the it’s leading edge chamfered 45°. An air bubble forms behind the step, causing the wing to more act like a proper airfoil with more lift and smoother pitch response. The KF step is optional, but I have been very pleased with its performance and deem it worth the weight. The extra thickness also makes the wing stiffer.
As the Flyer is all straight cuts, I haven’t bothered with a tiled plan.
I wanted to add an 808 Key-chain camera on top of the fin to record some flight video so I made a small platform from foam board and taped it in place. The extra tail weight was balanced by replacing the 3S 1300 mAh battery with a 2200 mAh. There was no noticeable change to the flight behaviour, but the resulting video showed continuous wing wobble. This was actually an illusion of relative motion as it was the fin that was wobbling. I braced the fin with some diagonal BBQ skewers to the horizontal stabilizer and the wobble disappeared.
Conclusion
I’ve been very pleased with these two models. They fly well and have proven very resilient. The Flyer survived two tree landings and extractions with only a broken prop. The only problem has been summer heat. It turned out the black foam board’s paper was attached with hot melt glue. After sitting in the car for a morning it all detached. The white foam board doesn’t have this problem and is still going strong.
I have since managed to obtain some Bazic branded Adams Ready-Board from which I have built an FT Bloody Wonder (Mk3), another great flyer. I’m thinking of scaling it up for the heavy foam board, possibly with twin engines so I can use it as an FPV platform.
After much searching I found a way to get 5MHz Wifi Dongles working on the Raspberry Pi 2 without having to compile a new kernel. I can’t claim any credit here; that belongs to MrEngman on the RaspberryPi.org forums who has done all the compiling and has made the kernel modules available to download.
One thing I did discover is that the high gain 5GHz wifi dongles draw more power that the Raspberry Pi 2 would like to deliver. To fix this I have made a special USB cable with a dedicated 5V power supply for the dongle.
Hardware
I have two 5 GHz Wifi dongles: an Edimax AC600 EW-7811USC Dual Band and an Alfa Network AWUS036AC Long-Range Dual-Band AC1200.
I could get the Edimax AC600 to work, but not the Alfa AC1200 even though they have the same chipset. When I tried running the Pi2 on batteries through a BEC I found that the AC600 would not always come up either. As the dongle was getting quite hot in use I summised that it was trying to draw more current than the Pi was able to supply.
To test this out I took a USB extension lead and chopped some cable out of the middle to make it shorter. At the same time I added a dedicated 5V power supply for WiFi dongle, fed from the BEC. The joins were insulated with heat shrink tube and insulation tape.
USB Power Booster Cable
With this in place I was now able to use both the Edimax AC600 and the Also AC1200.
The information we want is the version number at the start, up to, but not including the plus sign (+) and the build number after the hash (#). In this case 3.18.11-v7 and 781.
These values are inserted into a url to get the modules relevant to your kernel.
If you get an error here, it probably means that there isn’t a pre-compiled modules for your kernel version. All is not lost however. You can try upgrading your kernel to a version that is supported.
Type the command:
sudo rpi-update
This can take a while, so go have a drink and periodically check-in to see if its finished. When done, you will need to reboot your Pi.
Now run ‘uname -vr’ again to get the new version and build numbers
This worked for me leaving the file 8812au-3.18.9-v7-768.tar.gz in my home directory. We extract the files from this with the command:
tar zxvf 8812au-3.18.12-v7-782.tar.gz
This creates some files in the current directory, one of which is ‘install.sh’. Run this script with
./install.sh
you don’t need a sudo at the start.
Reboot your Pi. If you already have the Realtek specific version of hostapd installed the 5GHz dongle will probably work straight away, although possibly on the 2.4Ghz band if your system was previously configured to do so.
The 5GHz band is more regulated than 2.4GHz, so we need to install the Central Regulatory Domain Agent (CRDA) package that controls which frequencies and features are available to your country. Hostapd does not work with the world domain (00). You have to be specific. If not already installed, get the necessary package with:
sudo apt-get install iw crda
Then to set the CRDA region edit the file /etc/default/crda
sudo vi /etc/default/crda
Append your domain to the line “REGDOMAIN=”, which in my case is GB
REGDOMAIN=GB
Edit your /etc/hostapd/hostapd.conf to use the 5GHz band
Finally reboot again and hopefully you will have a 5GHz Wifi access point. I use WiFi Analyzer on my android phone to check.
Performance
At home with the transmitter and receiver in close proximity, there were no issues, the latency being comparable to the 2.4 GHz WiFi.
Buoyed up by this result, the next step was to get outside and test the range.
I took my test rig to my club flying field one lunchtime. With the Edimax AC600 connected directly to the Raspberry Pi, the maximum distance I could get before the picture froze was 28 metres. This was in a level rural location, so the chance of interference was minimal.
For the second test I used the Alfa Network AWUS036AC (AC1200). I had to use the power booster cable, as this Adapter requires too much power for the Pi to supply directly. With the Alfa AC1200 I managed 100m before the video started stuttering; still not enough for a useable FPV system. If the line of sight was blocked by a building or tree the video would freeze completely.
Conclusion
If these results are to be believed, then the future of this project looks bleak. However, the WiFi adapter manufacturers claim that these devices should perform better for range and speed than the previous generation. I need to check the performance of the WiFi adapter in the Laptop. It is about three years old now and probably can’t cope with the latest WiFi protocols. Perhaps the next stage is to obtain an extra AC600 and/or AC1200 and run the test again.
I’m also going to try measuring the current draw of these devices to see if the power consumption tallies with the 100mW permitted radiated power they are allowed.
Another possibility is to change the CRDA domain. There are examples of people reporting that using BO allows for increased transmission power. Obviously, do this may be breaking some rules in your country, unless you live in Bolivia.
Having ran through the installation procedure a number of times, I decided to write a script to automate it as much as possible. The result was a script that covered about 95% of the installation and took about two minutes to run on a recent built of Raspbian (2015-05-05). As more updates to Raspbian accumulate the run time can increase to 10 or 15 minutes. The script is light on error checking, so is best run on a newly flashed image.
The full step by step procedure that this script automates can be found on the Configuring a System page. For this example I will demonstrate a way to do the initial configuration without plugging the Pi into a monitor and keyboard.
Insert your SD card into your computers card slot or use a USB card reader. Take a note of the drive letter allocated to the card (E.g. E:).
Launch Win32DiskImager and make sure the selected Device matches the SD card location ( [E:\] ). Having the wrong letter here will corrupt that drive.
Click the small blue folder icon and select the expanded Raspbian image.
With everything set click the Write button. You will get a last chance warning about overwriting the drive. Click ‘Yes’ if you are happy to continue.
Once the image has been written, a small ‘Done’ message box will pop-up. Click the button and then Exit Win32DiskImager.
Eject/Safely remove the SD card from your computer and insert into your Pi.
Raspbian Configuration and Update.
Connect the camera to the Pi.
Connect the Pi to your LAN with an ethernet cable.
Power it on.
Run Angry IP Scanner and set the start and finish IP addresses to match your network. Also, in the Tools menu, select “Fetchers…” and add MAC Vendor to the selected fetchers. Click the OK button.
Click the start button to scan your network. When the results come up, look down the MAC Vendor column for “Raspberr” and then look to the first column to establish the matching IP address. Don’t rely on the hostname column. Depending on your network setup this may show the name of a device that was previously allocated the IP address by DHCP.
Launch putty and enter the IP address. I like to save the address as a session as I go along to save having to type the full IP address every time. When you are ready to proceed, click ‘Open’ to launch a command window.
At the prompt login as pi
The password is raspberry
The first time you login you will be dropped straight into raspi-config.
Hit ‘Enter’ on “Expand the Filesystem” to fill the SD card and the ‘Enter’ again to clear the “resize on next boot” notice.
Use the down arrow key to select “Enable Camera” and hit ‘Enter’. On the next screen use the right arrow to select ‘<Enable>’, then hit ‘Enter’ again.
Enter “Advanced Options” and then “Hostname”. Give your install an identifiable name.
Press the Tab key a couple of times to select ‘<Finish>’ and then press enter to exit raspi-config and reboot the Pi. This will stop your ssh session.
Wait a minute for the Pi to reboot and then restart the putty session, by right clicking in the putty window header and selecting “Restart Session”
Login again.
Procedure
Download and extract the script. Case is important.
wget -O - https://goo.gl/NLuFFI | tar zxvf -
Change to the install directory
cd FPiV
Run the script
./install.sh
Let it run keeping an eye out for error messages.
When all is finished the Pi will be configured with hostapd set to run with 2.4 GHz WiFi using a supported Realtek adapter. The streaming scripts are dropped into the pi home directory.
Reboot the pi.
If all is well, when the pi restarts it should start advertising its WiFi connection as Pi_AP.
Get Streaming
Connect the laptop WiFi to the Raspberry Pi’s Wifi Access Point
Open a terminal on the Laptop
run the ./go script on the laptop to update the configuration files on the Pi and set the time and date.
The go script will leave you in a ssh session on the Pi
You must be logged in to post a comment.