martinjaymckee
Well-Known Member
- Joined
- Mar 14, 2015
- Messages
- 91
- Reaction score
- 74
I can agree with all the above except for #5. I even agree that avoiding pyro channels makes sense. While I worked in Java for my Computer Science degree, so far as possible, I avoid it like the plague these days. I didn't even like it now. Of course, I'm a great fan of C++, so I guess I'm in a different "camp." I see three approaches to the interface that I like.
1. Do it using a chrome browser application. The CleanFlight R/C auto-pilot works this way and is very slick. There are ways to interface to the file-system and serial port in a basically platform independent manner. All the rest of the code is entirely platform agnostic. This also gives a really nice distribution method, as it could go into the Chrome app store. Down side? well, it's web based ( I'm not a fan of web-based, in general ) and other than some quick searching through the CleanFlight code, I have no experience with Chrome Apps.
2. Program it in Python. Generally speaking, this is my favorite option. Like Java, Python is nicely cross platform. It has multiple library bindings for GUI including 3D graphics. Moreover, Pyserial is about the nicest cross-platform bindings for serial that I've seen, and they are still being developed ( unlike the Java RXTX bindings that Arduino uses... or used, I know there was talk of them going to different bindings ). It's a bit large, but Qt is an absolutely beautiful UI library and the Python bindings are a joy to work with. Python has the disadvantages that fewer people will have it installed by default, it's a bit more difficult to distribute ( nothing quite as nice as a JAR file ), and, I'll admit, perhaps a smaller programmer base.
3. As I've been thinking about this, I came up with another idea. Make the whole thing web-based, and wireless. Use an ESP8266 ( maybe an ESP-12E ) as the processor and just make the data available on a website hosted by the device. That would allow the system to be easily accessible as well as work on just about any device one could want to access the data with. There is an ESP8266 port of the Arduino IDE, so the code there could be, basically, standard Arduino code, and there would be no "PC" side code requirement ( if it were done correctly ). Just from the neato factor, I kind of like this idea. I have no idea how to make it work, however, as I haven't really worked with the required systems yet. Looks doable though, a quick grep of google shows several projects that use the broken out SPI bus on the 12E to talk to an SD card.
4. I admit it, there's some reasonable argument for a Java based interface. Worth keeping in the set of options.
The one feature request I would probably have for a DIY flight recorder would be a GPIO riser so that other boards could be mounted on the flight recorder. Maybe they would have extra sensors, perhaps pyro channels, maybe servo controllers or, whatever. Just pinning out the 3.3v power, I2C and four digital pins could be super useful in the future.
Martin Jay McKee
1. Do it using a chrome browser application. The CleanFlight R/C auto-pilot works this way and is very slick. There are ways to interface to the file-system and serial port in a basically platform independent manner. All the rest of the code is entirely platform agnostic. This also gives a really nice distribution method, as it could go into the Chrome app store. Down side? well, it's web based ( I'm not a fan of web-based, in general ) and other than some quick searching through the CleanFlight code, I have no experience with Chrome Apps.
2. Program it in Python. Generally speaking, this is my favorite option. Like Java, Python is nicely cross platform. It has multiple library bindings for GUI including 3D graphics. Moreover, Pyserial is about the nicest cross-platform bindings for serial that I've seen, and they are still being developed ( unlike the Java RXTX bindings that Arduino uses... or used, I know there was talk of them going to different bindings ). It's a bit large, but Qt is an absolutely beautiful UI library and the Python bindings are a joy to work with. Python has the disadvantages that fewer people will have it installed by default, it's a bit more difficult to distribute ( nothing quite as nice as a JAR file ), and, I'll admit, perhaps a smaller programmer base.
3. As I've been thinking about this, I came up with another idea. Make the whole thing web-based, and wireless. Use an ESP8266 ( maybe an ESP-12E ) as the processor and just make the data available on a website hosted by the device. That would allow the system to be easily accessible as well as work on just about any device one could want to access the data with. There is an ESP8266 port of the Arduino IDE, so the code there could be, basically, standard Arduino code, and there would be no "PC" side code requirement ( if it were done correctly ). Just from the neato factor, I kind of like this idea. I have no idea how to make it work, however, as I haven't really worked with the required systems yet. Looks doable though, a quick grep of google shows several projects that use the broken out SPI bus on the 12E to talk to an SD card.
4. I admit it, there's some reasonable argument for a Java based interface. Worth keeping in the set of options.
The one feature request I would probably have for a DIY flight recorder would be a GPIO riser so that other boards could be mounted on the flight recorder. Maybe they would have extra sensors, perhaps pyro channels, maybe servo controllers or, whatever. Just pinning out the 3.3v power, I2C and four digital pins could be super useful in the future.
Martin Jay McKee