New flight computer development. - C++ Developer Needed

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Ravenex

Well-Known Member
TRF Sponsor
Joined
Aug 13, 2014
Messages
930
Reaction score
45
I am writing this post to solicit help from the rocketry community on an ambitious new project I have started. I will be looking for help on multiple aspects of this project from various groups of contributors which I will outline below, if you would like to contribute to this project in anyway please leave a message here or PM me and I will contact you with more information as the project progresses.

The project I am starting is to design and build a new more powerful and more capable flight computer for rocketry use. I am starting with a proven open source flight computer for drone copters/planes/rovers and I will be developing custom rocketry oriented firmware and software.

In the end I plan to have a flight computer system with open source firmware and software that runs on a variety of hardware. It will have features and configurability beyond what is available in any current rocketry product, and it will also have much more advanced telemetry and data logging. The unit will have 2 way communications allowing it to be optionally remotely armed (independent of the power switch) and reprogrammed in the rocket up to the minute it is armed on the pad so it can be reconfigured for changing weather conditions. The two way communications and R/C interface also allow two options for remote ejection override or a backup charge in the case of recovery failure. Lastly, the unit will have support for active flight stabilization and eventually control of steerable recovery chutes.

The system I am basing this on is the ardupilot package which runs on a number of different very capable hardware systems. I have chosen the mini APM 2.6 v3.1 paired with an external GPS/compass unit (uBlox M8N) these units are 35mmx35mm and can be stacked or placed side by side. I have also selected a 915MHz radio unit based on the same chip used by the eggfinder. This hardware is designed for extremely accurate and stable control of camera equipped uavs and has some impressive sensors and I/O capabilities.

All told this setup has:
• 6 DoF Accelerometer/Gyro (MPU-6000 - 16Gs, 2000dps)
• High precision barometer/temperature sensor (MS5611-01BA03 – 100kft @ 4 inch resolution)
• 8 pwm inputs for R/C control / 8 pwm outputs for servos or motors
• 12 channels of programmable I/O that can be analog or digital inputs or digital outputs
• 4MB of flash for data logging
• 2 way 915MHz data link with programmable channels
• USB interface
• High end GPS with extra-large ceramic antenna
• Current / Voltage sensing

The stock software has live GPS tracking and flight telemetry including altitude, pitch/yaw/roll, battery voltage, in flight programming of “mission parameters” plus the ability to override the system (thing remote backup charges)

And the total cost for all of this hardware is $104.

I plan to add a simple board for switching, power regulation, and high current charge firing, and as an independent part of the project a Bluetooth remote firing system for separating the an av-bay from the ejection charges.

I’m still developing a complete list of desired features but I have some lofty goals already. However, I plan to build and test this project in stages so no unnecessary risks are taken. The complete feature list and project status will be covered in the second post of this thread and I will do my best to keep this information current.

So what do I need from the TRF community?

First, I am looking for feature requests. I have not used most of the flight computers out there but would like to take lessons from the features that they offer and the issues people have with them. Anything you want, no matter how pie in the sky, please post or PM and I will add it to the list and prioritize it with the other features.

Second, I am looking for programmers. I have a programming background and I have recruited my brother who is a professional software developer, I have also solicit help from the current ardupilot developer group. However, the ardupilot core is 700k lines of code and while I will be able to use mostly existing code there will be a significant amount of rocketry specific code to develop so I can use the extra help. If you have strong C++ and/or C# skill and would like to help please pm me.

Third, I am looking for a hardware developer. I can design build the prototype hardware and etch the initial prototype PCBs but eventually I would like to have more professional hardware.

Forth, I am looking for rocketeers in and around the Chicago area (QCRS, Michiana, TWA) who attend regular launches and would be willing to launch my test rocket. I don’t realistically think I can consistently get to monthly launches to get in enough test flights to gather the data to keep this project moving along at a reasonable pace. Alternatively, I would love to have rocketeers that would be willing to fly the same setup in their own birds and send me data and flight reports.

Please bear with me while I get the feature list written up it should give everyone a more complete picture of this project.
 
Last edited:
Status
Hardware:
    Base Hardware (APM, GPS, Telemetry) – Received Mini APM2.6 V3.1, Ublox M8M, Hope RF module
    Power / Deployment Board - Hardware design started
    Remote Deployment Boards – Concept Stage
Firmware
    Beginning familiarization with code
Software
    Beginning familiarization with code
Rocket
    Base rocket acquired and modeled in Rocksim and Solidworks. Modifications are being modeled in solidworks including new av-bay, piston deployment, servo canard module. Build started. Build thread here: "ExPAC - EXperimental Platform for Advanced Concepts" design/build thread


Feature List (not yet organized or complete)
• Expandable high amp deployment channels (number of channels per expansion TBD)
• Current limiting and over-temp protection on all deployment channels to prevent damage from short circuits.
• E-match resistance measurement on all channels with user defined warning levels
• Programmable deployment conditions based on any combination of apogee, altitude, pitch/yaw, time delay, launch detection
• Active lunch signal detection input (could be used to inhibit launch based on remote arming)
• Mach immunity filter
• High G accelerometer single axis (105g or 250g TBD, possibly optional)
• Full live telemetry including GPS, altitude, acceleration, climb rate, pitch, yaw, roll, battery, e-match resistance, deployment status, battery voltage, other I/O status
• Active stabilization with support for multiple control fin configurations
• Remote flight parameter setting
• Remote system arming (optional)
• Deployment output remote override
• Power management and brown-out protection for control electronics
• Multi-rocket parameter memory
• Status beeper
• Peak altitude beeper and memory
• Startup beep codes (is this necessary with the 2 way comms?)
• GPS tracking with high gain antenna and GPS/GLONASS satellite support.
 
Last edited:
Specs (Including add-on boards):


• Battery Voltage 6-18V (2-4 cell lipo)
• Max system current 100A
• Deployment
    • Cannels per board TBD
    • Current limiting per channel TBD
    • Over-temp protection
• Measurements
    • Battery voltage measurement 0-20V, 10bit resolution
    • Battery current measurement 0-100A, 10bit resolution
    • E-match resistance 0-10 ohms with 12bit resolution
    • E-match current full range 12bit resolution
    • Measurement Specialties precision barometer: MS5611-01BA03
        • 100k+ ft
        • 10cm resolution
        • Temp measurement -40 to + 85 C
    • Invesense 6 axis IMU: MPU-6000
        • 3-Axis acceleration: 8g or 16g (TBD) 16bit resolution
        • 3 Axis Gyro: 1000 or 2000 deg/sec (TBD) 16bit resolution
        • Temp measurement -40 to +85 C
    • Ublox mini gps module: M8N
        • GPS
        • GLONASS
        • Large ceramic antenna
        • Compass
    • 1 Axis Accelerometer
        • 105g or 250g (TBD) 12bit resolution
 
Last edited:
This sounds like an awesome project! I've been wanting to build a rocket with active stabilization for a while but I don't have the programming knowledge to actually make it happen. I would test these in a heartbeat if I didn't live in Texas... I'll be watching closely!
 
This looks like an awesome project and something I would definitely use. What are you looking at for the final price range?
 
This looks awesome. Let me know if you need a tester (I am in NC). I sent you a PM about it.
 
This sounds like an awesome project! I've been wanting to build a rocket with active stabilization for a while but I don't have the programming knowledge to actually make it happen. I would test these in a heartbeat if I didn't live in Texas... I'll be watching closely!

If you would be willing to purchase your own commercial hardware, about $104 + servos, I would happily supply you with a copy of the firmware to load and any prototype hardware. I could also help you design and build a servo fin can.

This looks like an awesome project and something I would definitely use. What are you looking at for the final price range?
The final price is dependent on the hardware and features you choose to use and features. Some of the base hardware is comercially available The firmware and software will run on several hardware sets ranging from $80 to $400 with slightly different capabilities. The components of course become more expensive if you add the servos to use the stabilization and extra batteries and what not. Any add on hardware I hope to to offer both open source but also in kit form like the eggfinders at as minimal a cost as possible. If the demand is large enough to consider making this more than a cool project to support the hobby I may have to add in a bit for my time, but I'm not doing this to make money.

Very, very cool. With the extremely sophisticated hardware now available for DIY "drones," I was wondering when someone would do this. This is probably your main competition if they meet their price point which I suspect they will:

https://www.rocketryforum.com/showt...re-Arduino-compatible-data-logger-coming-soon

I was actually thinking about that this morning after their most recent post... I was originally thinking about being a backer and using their hardware for this project, some of the features, like blue tooth would be nice. There hardware misses on a few points though, which may be included in there planned shields, but without that information on these or there delivery I didn't want to count on it. These include external GPS/Compass with large antenna, R/C PWM inputs and outputs, deployment and telemetry shields (announced as in production), and a few others. Also the hardware/firmware/software I am using has been in use for several years with regular updates and has a proven package with a large development/user community. I am really hoping the Apollo will be or can be made to be compatible with the firmware and software I am using, it would be an amazing system.
 
Last edited:
It’s been a little while so I’m posting an update. I have made a bunch of progress and I have a few things I want to get opinions on. I will make individual poll threads for that.
First, I want to say I am encouraged and honored by the amount of interest I am getting in this project. Thanks everyone! I should have a good number of test fliers and I have found someone to help with the hardware production. I am still looking for programming help.

I have received my base hardware and have started playing with it. It’s pretty awesome I will have to make a video showing its basic functionality. Work has also begun on ExPAC, the test bed rocket for this build and I will update the build thread accordingly in the next day or two.

Most of my time on this project though has been spent working on my specifications and my hardware design. I am doing a lot of research on the current state of rocketry flight computers and weighing the pros and cons of an endless stream of design possibilities. I am finding, as I expected, that I am spending a lot of time trying to find a balance of features that allow this project to be a great all around flight computer. My goal is for it to be inexpensive and simple enough to be used by the typical flyer that might use a stratologger of rrc2/3, while having features and expandability to satisfy the most extreme flyers.

The current plan is for my add-on hardware to be modular and daisy-chainable. Currently I plan on having two basic boards, a standard deployment board, and a remote (Bluetooth) deployment board. Each board would be available with just the deployment components or with the deployment and power management / distribution components. It would then be possible to string together multiple boards of either type to expand the number of deployment channels and I/O.

A starter setup would include the APM2.6 Mini board ($40) and one deployment board with power management ($TBD). This would give you a very high end altimeter/deployment/logging system with USB management and log downloads. (The start setup will also be able to handle flight stabilization with a proper servo/canard setup)

You can then add additional deployment boards (both standard and remote) to give you a system with all the air-start / cluster / staging / deployment options you can imagine.
Users could then add a telemetry unit (100mW 915MHz/433MHz $25 or 500mW 433MHz $45) to get in live data and remote setup/arming. This would allow you to configure and monitor your system up until the moment of ignition so you can adjust deployment settings for changing conditions even on the pad.

Adding a GPS unit ($35) gives you a high end tracking system with large high gain antenna and GPS/GLONASS satellite support for superior position tracking and location.

I will update the feature list in the second post of the thread and the third post with the planned specifications so far as soon as possible. I will also be posting some pole questions about feature options I would like feedback on.

Thanks for your interest everyone!
 
So, I'm really excited about this update! One of my goals of this project is to bring some more advanced rocketry features to the everyday hobbyist. Some of the higher end builders already play with active stabilization and other advanced concepts but each project is an independent one off project with all of the associated experimentation. To make this more accessible I eventually hope to make available 3d printed servo av bays similar to the existing 3d printed av bay offerings, along with the necessary parts so a builder just needs to attach their own fins.

This sounds well and good for people willing to make test flights except that in order to make this work for the average rocketeer they need to be able to simulate the effectiveness of their fins and tune the control parameters without risking test flights. The flight control board I am using has a firmware development system called SITL for "software in the loop" in which an external simulator receives input from and sends realistic output to the firmware. We planned to write a rudimentary simulator to accomplish this but a conversation with my father sparked a light bulb moment. We already have rocket simulators and one in particular which is open source and designed to have other programs interact with its simulations, OpenRocket.

We’ve begun work to integrate OpenRocket with SITL and to add support in OpenRocket to specify control fins and to simulate reefable and steerable parachutes. In time it will hopefully be included in the main OpenRocket releases. This will allow builders to simulate their design with the actual control firmware and settings that they will fly and get a complete flight simulation.
 
You should check out a good 6dof simulator, JSBSim. Looks like it can handle rockets as well as aircraft. You need dynamic aero coefficients to really capture the "output" of the airframe.
 
Last edited:
SITL already uses JSBSim for airplane simulation with very accurate results, however this would not be user friendly for the people who eventually use my flight computer. I'm also not convinced the improved accuracy is necessary fit basic tuning and I'm not sure fine tuning is achievable without test flights do to the real world variables like sensor noise and build tolerances
 
The hardware and software for this project have been on hold for a few weeks while I prepped for my flights at Three Oaks, MI on 4-18. These three flights included my L1 & L2 certification flights as well as a flight for the test bed for this project, ExPAC. All three flights were recovered successfully. ExPAC flew to do a basic test of the flight computer hardware as well as to test the mechanics of a controlled parachute setup. The hardware performed as expected except for a telemetry problem that caused a lag in the real time date. This will be resolved before the next flights.


I am now getting back to the hardware, firmware, and software design and hope to start prototyping the hardware in the upcoming months. I am also starting to make progress on the integration with the OpenRocket simulation engine with the hardware emulator which will allow me to start developing and testing the flight firmware.


Unfortunately my lead developer has had to step back from the project due to other time constraints and I am now searching for a new programmer. I am looking for someone with strong C++ skills who wants to be a part of bringing new advancements to the average HPR builder. Experience with micro-controllers, C#, Java, Python a definite plus.
 
Are you still working on the project?
I have been working on GPS guidance with an Atmega 328 and lately with a 1284p this works more or less ok with a rover on the ground which has a go home but and I am thinking of using the APM ardware from the ardupilot project to add guided landing to my rocket.
Do you have any code that you could share?
 
I'm working on a i2c arm, fiire, continuity checker. Relay on the plus side of a 3s lipo (could be 2s) two firing circuits. MOSFETs on the minus side of power with a 500/50 voltage divider between drain and ground for continuity. An attiny85 to run the whole. I'm guessing you'll want one when I'm done?

Check out my new member diatribe...
 
Back
Top