Reoze Posted January 3, 2015 Posted January 3, 2015 (edited) I was curious, as I'm currently looking at the Intel Edison development board, are there any issues with performance with the standard 8mhz ATMega Arduino? From a programming perspective it seems like things could get a bit overloaded. From a hardware perspective I'm already planning on using several shift registers to multiplex my I/O. Which essentially means only one switch can be read per clock cycle. What strategies are people using for entire cockpit setups? It seems as if people resort to using a controller per panel that they make, which also raises concerns on the host environment about performance of so many USB devices.Would it make more sense to use something like a single Edison with a much beefier 500 mhz dual core processor over multiple ATMegas? For those that are wondering this is what I am talking about : http://www.newegg.com/Product/Product.aspx?Item=N82E16813121811 Note: While the processor itself is 500 mhz, from what I understand the I/O is clocked at 32 KHz, though this would leave a lot of processing power left over to deal with DCS data export/import Edited January 3, 2015 by Reoze
vicx Posted January 3, 2015 Posted January 3, 2015 Edison is complete overkill unless you want to do heavy math or heavy string operations or run a web server or some other process heavy task. For home cockpit you just need a device with robust I/O. Most Arduino are 16Mhz now and even if they were only 8Mhz you won't come anywhere near to saturating that in a cockpit unless your code is REALLY poor. An Arduino Mega (arduino with more pins and bit of extra memory) has been used as the basis for an autonomous UAV platform for years. The arduino can fly a plane AND do upstream and downstream telemetry ... I'm sure it can drive your instruments. If you go with the Intel you will run into problems you will have to solve yourself. If you go with a duino then you will have more people able to help you. If you want wireless - go with the Arduino Yun. It should cost $70 but the prices vary with demand and availability.
FSFIan Posted January 3, 2015 Posted January 3, 2015 I think the "one $3 Arduino clone per panel" approach is the most cost- and time-efficient way for most cases (about $0.15 per usable GPIO pin -- that is not counting GPIO pins needed to talk to the rest of the cockpit, i.e. serial and I2C). Some of the TI Launchpad boards are interesting if you need more processing power (think 320x240 graphic LCD for the CDU or talking to several small OLED displays). The "Tiva C Connected Launchpad" looks especially interesting because it has Ethernet and about 80 GPIO pins. For the Connected Launchpad, cost is about $0.40 per usable GPIO pin. With its 8x UART, 10x I2C and 4x SPI, that board is a good candidate to act as a central hub that talks to DCS over Ethernet, sends the received export data via UART to other controllers and relays commands from I2C bus(es) to DCS. I would not recommend using shift registers for input purposes, because you need to solder individual pull-up resistors. That takes time and increases the cost slightly (protoboard, resistors, solder, ...). The marginally higher cost of just using another microcontroller is well worth the time saved. Processing of DCS data does not take any significant time (I checked for DCS-BIOS with a logic analyzer). While 16 MHz is orders of magnitude slower than your PC, that's still 16 million instructions per second, and to process an update from DCS you need maybe several 100 to several 1000 instructions -- certainly less than a million. I would suggest going with a board that can be programmed in the Arduino language (for the TI Launchpads you can use Energia), because those work out-of-the-box with DCS-BIOS. DCS-BIOS | How to export CMSP, RWR, etc. through MonitorSetup.lua
Recommended Posts