Ok - I'm not giving up on the GPS experiments with the Naze32 on my emax 250. But those experiments are convincing me that the Naze while a great acro board - just isn't great for much more than acro.
Don't get me wrong, it flies GREAT. But the Naze32 is just too limited in a number of ways to be a serious hackers board for someone like me who likes to play with the software that runs on our controllers. It's using the lowest end STM32 chip with the least connectivity and memory - in fact it has fewer UARTS (serial ports) and less memory than the Arduio Mega that I used for my first multirotor build. It also has LED's wired to the pins that would support USB natively on the STM so it has to add a UART->USB chip and TimeCop picked a chip that I'm not a huge fan of for that as the drivers for it have caused me headaches on several occasions.
And while the Naze flies great it doesn't really seem to fly noticeably better than my MW controllers - which isn't shocking since Baseflight is just MW ported to a 32bit processor and even on the 8bit avr's flight code isn't pushing the limits of the processors.
So while I don't dislike the Naze32 I'm not all that thrilled with it right now either since I'm getting bored with "just flying" and am feeling the urge to do more hacking and playing with more semi-autonomous and autonomous flight.
Finding that the Naze32/Baseflight can't run a GPS, telemetry and OSD at the same time was pretty much the final straw.
I've been thinking about trying APM for some time, but I hear so much about how it doesn't fly as well as MW/Naze/KK and has a bit of a rep for unreliability in various ways and my general dislike of 3DR and their commercialization of an open source project...well it got me looking at alternatives.
I learned about Tau Labs a couple of months ago. But I saw they were basically a fork of OpenPilot which has quite a bit in common with APM and I had heard about serious issues with CC3D boards not behaving well...and pretty much wrote them off.
But then a few weeks ago I saw the lead developer from Tau Labs post on his blog about his new Sparky2 board which seems to hit all my buttons: http://buildandcrash.blogspot.com/2014/08/sparky-20-and-taulink.html
Beefy 32bit processor? Yep, STM32F4 (compared to the F1 on the Naze) Plenty of connectivity? Oh yeah, not only does it have plenty of uarts he also added CAN bus and the sensors are running on SPI instead of IIC which could potentially give better performance. Small? Yep, He hasn't posted exact dimensions but from what he has posted it sounds like it may actually be a little smaller than the Naze. Plenty of memory? Yep, the F4 over the F1 again...and he added a flash chip for storing stuff like flight plans, cool. He even enabled DAC output so this thing can generate audio (think spoken alerts from the FC hooked to the audio pin on your FPV VTX - kind of like telemetry only audio and super easy to rig up.) But the clincher for me is that while it's potentially a 1 sided board he used the back side to mount an optional RFM22B module.
The RFM22B is the same module used in openLRS. Basically this is a flight controller with RX built in. Something I've been wanting to make since I started messing with my first multi!
The big bummer is that the sparky2 isn't released yet. It's only available to people who've tested his boards before and I'm not one of them But it has me very interested in Tau Labs and I want to try their code on the cheap...so back to my roots!
I ordered up a DiscoveryF4 board pretty much as soon as I realized it only costs $15 and has a built in ST-LINK debugger - so even if I abandon this project I'll have a nice development board with some serious hardware on it and a STM debugger that should be nice for working on things like the Naze32 if I dig deeper into the software. I also tossed in the flash chip (it was <$2) and a few replacement oscilators so I can repair a few broken ESC's and a few other little components I needed.
I then dug in on the software side. Tau Labs has a downloadable Linux virtual machine setup as a dev environment so it's really quick to get going on developing their software. I did hit a few little snags the first night due to the VM being a bit funky and some of the tools in it being out of date - but once I got it figured out I was able to build the flight controller code no problem. So far so good!
Next I tried to build the ground control software...that turned into a bigger hassle but again was due to outdated tools in the VM. I'll post more details about this all later tonight but basically going through the Linux dev setup instructions from the Tau wiki brought the VM back up to speed and I got the ground system to build (though the build took over 2.5 hours, been a long time since I compiled something that took that long to build!)
And that's where I've been the past few days waiting on my DiscoveryF4 board that wasn't scheduled to arrive until tomorrow. But when I went home for lunch today USPS surprised me and it was sitting there waiting for me. So between bites of my lunch I got to work.
Compared to my emax quad it's obvious that this is not going to be a small setup The Discovery is a dev board for playing around with the STM chip not an actual flight controller. And 98% of the stuff on there isn't even needed for a flight controller. There is a 3 axis accelerometer on there but with no gyro the board can't be used by itself as a FC.
And while big it's not THAT much bigger than my Arduino megas. In fact it's a little shorter - but wider. So it should fit on my knuckle quad no major problem.
I quickly hooked it up - only to find that the built in sample program wasn't working. The instructions that came with the board said to push the blue "user" button and it would enable the accelerometer and light up LED's showing how fast and in what direction it was moving...pushing the button did make the lights go out...but didn't seem to make the board respond to movement. The instructions also said that you could plug in off the other USB port and it should work as a mouse - and while windows does identify it as a human interface device when plugged in like that...I couldn't get my mouse pointer to move. A little worried I decided to just push on.
I fired up ST-LINK and the board was recognized. So far so good. I followed the instructions from Tau on how to flash the bootloader: https://github.com/TauLabs/TauLabs/wiki/Creating-a-FlyingF4-from-scratch and found that the instructions were slightly off. I never got the confirm dialog they talk about and had to initiate a write sequence myself. No big deal and it seemed to complete successfully.
But when I powered it up I didn't get the slowly flashing blue light they said I should. My blue light came on...but was just kind of dim and not fading in/out. Hmmm.
Being in a rush and foolhardy I fired up the Tau GCS and tried to flash the firmware. It completed successfully and things seemed to be working...but the GCS wasn't connecting to the board and my computer kept beeping that something on the USB was connecting and disconnecting.
Oh yeah...I had read about this. If the firmware can't initilize it's expected sensors then it reboots. Since I hadn't hooked up any sensors yet the board was just rebooting since it couldn't init the MPU-6050. Doh.
Broke out the soldering iron and wired up a MPU, Tau uses the interrupt line which MW/Naze don't so I had to add one extra wire but still got it hooked up pretty quick:
Now the GCS recognizes it as a "DiscoveryF4" but still doesn't seem to connect. I'm guessing it's because I haven't added the flash chip yet so I'll be doing that tonight. But it is good to see things light up at least
More to follow later tonight, I'm really hoping to get this at least to where GCS will connect and I can read the sensors before I go to sleep tonight. If I can do that tomorrow I should be able to get it wired up in place of my mega and may be able to test fly it on my Knuckle before the weekend if all goes smooth.
Don't get me wrong, it flies GREAT. But the Naze32 is just too limited in a number of ways to be a serious hackers board for someone like me who likes to play with the software that runs on our controllers. It's using the lowest end STM32 chip with the least connectivity and memory - in fact it has fewer UARTS (serial ports) and less memory than the Arduio Mega that I used for my first multirotor build. It also has LED's wired to the pins that would support USB natively on the STM so it has to add a UART->USB chip and TimeCop picked a chip that I'm not a huge fan of for that as the drivers for it have caused me headaches on several occasions.
And while the Naze flies great it doesn't really seem to fly noticeably better than my MW controllers - which isn't shocking since Baseflight is just MW ported to a 32bit processor and even on the 8bit avr's flight code isn't pushing the limits of the processors.
So while I don't dislike the Naze32 I'm not all that thrilled with it right now either since I'm getting bored with "just flying" and am feeling the urge to do more hacking and playing with more semi-autonomous and autonomous flight.
Finding that the Naze32/Baseflight can't run a GPS, telemetry and OSD at the same time was pretty much the final straw.
I've been thinking about trying APM for some time, but I hear so much about how it doesn't fly as well as MW/Naze/KK and has a bit of a rep for unreliability in various ways and my general dislike of 3DR and their commercialization of an open source project...well it got me looking at alternatives.
I learned about Tau Labs a couple of months ago. But I saw they were basically a fork of OpenPilot which has quite a bit in common with APM and I had heard about serious issues with CC3D boards not behaving well...and pretty much wrote them off.
But then a few weeks ago I saw the lead developer from Tau Labs post on his blog about his new Sparky2 board which seems to hit all my buttons: http://buildandcrash.blogspot.com/2014/08/sparky-20-and-taulink.html
Beefy 32bit processor? Yep, STM32F4 (compared to the F1 on the Naze) Plenty of connectivity? Oh yeah, not only does it have plenty of uarts he also added CAN bus and the sensors are running on SPI instead of IIC which could potentially give better performance. Small? Yep, He hasn't posted exact dimensions but from what he has posted it sounds like it may actually be a little smaller than the Naze. Plenty of memory? Yep, the F4 over the F1 again...and he added a flash chip for storing stuff like flight plans, cool. He even enabled DAC output so this thing can generate audio (think spoken alerts from the FC hooked to the audio pin on your FPV VTX - kind of like telemetry only audio and super easy to rig up.) But the clincher for me is that while it's potentially a 1 sided board he used the back side to mount an optional RFM22B module.
The RFM22B is the same module used in openLRS. Basically this is a flight controller with RX built in. Something I've been wanting to make since I started messing with my first multi!
The big bummer is that the sparky2 isn't released yet. It's only available to people who've tested his boards before and I'm not one of them But it has me very interested in Tau Labs and I want to try their code on the cheap...so back to my roots!
I ordered up a DiscoveryF4 board pretty much as soon as I realized it only costs $15 and has a built in ST-LINK debugger - so even if I abandon this project I'll have a nice development board with some serious hardware on it and a STM debugger that should be nice for working on things like the Naze32 if I dig deeper into the software. I also tossed in the flash chip (it was <$2) and a few replacement oscilators so I can repair a few broken ESC's and a few other little components I needed.
I then dug in on the software side. Tau Labs has a downloadable Linux virtual machine setup as a dev environment so it's really quick to get going on developing their software. I did hit a few little snags the first night due to the VM being a bit funky and some of the tools in it being out of date - but once I got it figured out I was able to build the flight controller code no problem. So far so good!
Next I tried to build the ground control software...that turned into a bigger hassle but again was due to outdated tools in the VM. I'll post more details about this all later tonight but basically going through the Linux dev setup instructions from the Tau wiki brought the VM back up to speed and I got the ground system to build (though the build took over 2.5 hours, been a long time since I compiled something that took that long to build!)
And that's where I've been the past few days waiting on my DiscoveryF4 board that wasn't scheduled to arrive until tomorrow. But when I went home for lunch today USPS surprised me and it was sitting there waiting for me. So between bites of my lunch I got to work.
Compared to my emax quad it's obvious that this is not going to be a small setup The Discovery is a dev board for playing around with the STM chip not an actual flight controller. And 98% of the stuff on there isn't even needed for a flight controller. There is a 3 axis accelerometer on there but with no gyro the board can't be used by itself as a FC.
And while big it's not THAT much bigger than my Arduino megas. In fact it's a little shorter - but wider. So it should fit on my knuckle quad no major problem.
I quickly hooked it up - only to find that the built in sample program wasn't working. The instructions that came with the board said to push the blue "user" button and it would enable the accelerometer and light up LED's showing how fast and in what direction it was moving...pushing the button did make the lights go out...but didn't seem to make the board respond to movement. The instructions also said that you could plug in off the other USB port and it should work as a mouse - and while windows does identify it as a human interface device when plugged in like that...I couldn't get my mouse pointer to move. A little worried I decided to just push on.
I fired up ST-LINK and the board was recognized. So far so good. I followed the instructions from Tau on how to flash the bootloader: https://github.com/TauLabs/TauLabs/wiki/Creating-a-FlyingF4-from-scratch and found that the instructions were slightly off. I never got the confirm dialog they talk about and had to initiate a write sequence myself. No big deal and it seemed to complete successfully.
But when I powered it up I didn't get the slowly flashing blue light they said I should. My blue light came on...but was just kind of dim and not fading in/out. Hmmm.
Being in a rush and foolhardy I fired up the Tau GCS and tried to flash the firmware. It completed successfully and things seemed to be working...but the GCS wasn't connecting to the board and my computer kept beeping that something on the USB was connecting and disconnecting.
Oh yeah...I had read about this. If the firmware can't initilize it's expected sensors then it reboots. Since I hadn't hooked up any sensors yet the board was just rebooting since it couldn't init the MPU-6050. Doh.
Broke out the soldering iron and wired up a MPU, Tau uses the interrupt line which MW/Naze don't so I had to add one extra wire but still got it hooked up pretty quick:
Now the GCS recognizes it as a "DiscoveryF4" but still doesn't seem to connect. I'm guessing it's because I haven't added the flash chip yet so I'll be doing that tonight. But it is good to see things light up at least
More to follow later tonight, I'm really hoping to get this at least to where GCS will connect and I can read the sensors before I go to sleep tonight. If I can do that tomorrow I should be able to get it wired up in place of my mega and may be able to test fly it on my Knuckle before the weekend if all goes smooth.