Good lower-power decent-performance single-board computer?

Hi all :slight_smile:

I'm wanting to do a home environmental monitoring system using an Arduino Due that will enable me to do things like monitor temperature/humidity in different parts of the house, check for smoke, water in the basement, etc., and act based on conditions (eg., text me if the house gets too cold, etc.) I also want to output this data to a small computer to be able to do data logging to a MySQL database and chart the results on a web interface.

To that end, I'm curious if anyone has suggestions about a good low-power decent-performance single-board computer that I could use to interface with the Arduino? I've been looking at the Udoo, but I tend to shy away from combined devices like that for one reason - if something happens to either part (including the desire to upgrade,) you lose both components. So if possible, I'd rather have a separate computer.

I like the performance details of the Udoo, as well as the power requirements (being able to run everything (including the Due) off of a 12v 2A input.) The price is pretty decent too (working out to about $80 for the quad-core computer part, when you figure in the typical $55 for a Due.)

Any thoughts? Or, am I looking at this the wrong way?

(deleted)

Cool, thanks! :slight_smile:

I guess I should add - at this point in time, I currently have about 35 different inputs and a few outputs planned (a few analog and most digital,) with more to come down the road as I expand the project later. So, I'd like to stick with the Due if at all possible, and add on a separate computer to interface with it.

Sorry for not mentioning that earlier :confused:

(deleted)

external ADC will be able to reduced pins and offer higher resolution
digital sensors could be used but have poor resolution/accuracy often 1°F error.

you can use a shift register to increase outputs and inputs without using pins.

If you want a single board computer, you should use raspberry pi. It runs linux.

Cool, thanks for your feedback :slight_smile:

I think that the Yun is a cool product, but I don't know that it's right for what I'm wanting to do. I know that it's got an ARM processor and can run linux, but it seems like it's more designed for basic linux functionality, rather than running a full-blown distro like Debian or Ubuntu, which I'm wanting to do in order to be able to use Apache and MySQL. I could definitely be wrong about its capabilities, but that's what I got out of reading the product sheet.

I've been digging more into connecting a rPi to an Arduino in order to do data logging and serve the results on a webpage, and it's definitely looking promising. While I would like something a bit more powerful (in reality, having the power of the Udoo would be wonderful,) I think that the rPi would work fine for my needs. (In reality, I'm the only one who's going to be checking on the temperature in the basement after all...) Plus, by designing things modularly, should my needs for horsepower increase down the road, I should be able to swap out the computer portion fairly easily without having to do much (or anything) different with the Arduino side.

So far, the most useful post I've found on the topic is this one: http://www.benk.ca/node/10 . I also found a page from last Jan. with a lot of information about different potential single-board computers here: http://iqjar.com/jar/an-overview-and-comparison-of-todays-single-board-micro-computers/

I did a similar research last year around mid year. I decided on rPI because their support forum is better. The beagle board would have faster cpu (latest version) but their support forum is non-existing. You have to go with something that has enough help when you are stuck. I don't know how well you handle Linux/gnu. I was a newbie and I had to write a daemon program so it was hard and the forum helped.

To be honest, that there is one of the biggest reasons I'm looking at combining rPi and Arduino - the awesome support forums for both projects :slight_smile: I'm good with Linux (SysAdmin by trade,) but a noob when it comes to robotics/electronics. I'm definitely excited at the potential though, and have been working on this project for several months now, trying to get the best design I can come up with :slight_smile: It's definitely become a lot more complex than what I had originally envisioned, but also much much more robust, and with a much greater for future expansion as I become more comfortable with things too, and I've learned a TON along the way :slight_smile:

rpi + uno or mega would be best. You can move to different linux-based boards or full-PC anytime you want. Don't need to program on the rpi but program on a linux-PC for the speed of compile. Then move source code to rpi for compile or set up cross compiler if you know how to (I haven't learned it yet).

Do you do scripting language programming or c++ on linux? rpi prefers python but I'm using c++ so help comes a bit scares.

Cool. It looks like the Mega would better support my project plans than the Uno since it has so many additional IO connections on it.

Out of curiosity, would it perform ok still, even though its speed is about 1/4th of the Due? I'm looking at having about a dozen and a half temperature/humidity sensors (mostly DHT11,) half a dozen MQ gas sensors, and a dozen or so other random inputs (voltage dividers, current sensors, leak sensors, switch inputs, etc.) I don't really know how important processor speed is to an Arduino project.

Also, is the 3v3 aspect of the Due important? I mean, most of the sensors currently appear to be 5v (or support both 5v and 3v3.) The idea of an arm-based processor sounds appealing since a lot of things are going in that direction. But I also like the idea of not needing to build a board with 30-some-odd mosfets for logic level conversion to support the 5v sensors I'm going to end up using...

And I guess related to that - is having GPIO protection as important to an Arduino as it is to a rPi? (meaning, resistors to help protect against short-circuits and limit current, and zeners to prevent over-voltages.) From what I've read online, it sounds like it's important for the rPi since the pins connect directly to the processor, but I haven't read much about folks doing that for an Arduino board. Thoughts?

I guess the big question relates to the fact that I want to try to do something that's going to last me for a long time and a lot of project expansions. I'm sure I'll have new projects in the future, but this current one is one that I could see running as-is and being expanded upon for many years, so I don't want to undersize now and regret it later. But to be honest, I really don't know what would be the best between the Due and Mega.

Well, I ordered my Mega today :slight_smile: Definitely can't wait :slight_smile:

I also figured that I'd just go ahead and set up a protection board for it as well. Figured that it couldn't hurt, and who knows, it could save my board if I do something stupid :stuck_out_tongue:

One thing I don't like about using RPI's I/O pin is damaging its processor. If I damaged an arduino uno, I can replace its chip. Replacing MEGA's chip is hard but a MEGA compatible board is cheap. The USB hopefully isolates RPI from some harm.

Yeah, I don't think there's really any way that I'd be ready to attempt SMD soldering :wink: So I'm hoping to protect things as much as possible; I figure that a little extra cost up-front is well worth it in the long run :slight_smile:

Ruggeduino is an option. It's got only UNO form factor though, not too many pins.

http://www.ruggedcircuits.com/ruggeduino/

some more options.
the NANO is a small form UNO with about 28 pins. it has the same pints as the UNO, plus 2 additional ADC pins. the extra ADC pins are available on the SMD chip but on on the DIP version the UNO uses. less than $5 per chip in the clone market. you can build a simple I/O board with that and then make up 10 of them for your ever expanding needs.
The ADC is the same 10 bit

you can use a teensy, less than $30, but runs a different processor some use a Cortex.
the ADC is 13 bit, so you get a much higher resolution.

going back to the first idea of the NANO, make boards with the ASD1115, 4 channel, external chip.
you can make perf boards, solder in sockets and headers and get these to work together.

the ESP8266 is the new kid on the block, much more restrictive on the I/O, only one ADC and that is limited to about 1 volt. and only have a limited number of I/O pins, but it is cheap, and fast and does wifi natively. has lots of speed and memory. consider using that for your satellite boards, with a few ADS1115 chips, you get a lot of sensing.

all that said, many are using the ESP as a web server. I am still trying to get a grasp of doing that, but there are more than a few weather stations with a number of inputs that are data logging and on the web.

that really puts your SBC into the category of web portal, front end, and data storage.
you could use the cloud and thinks like mathlabs for a web based solution and not need a SBC at home.

all that said, making your sensing boards with sockets and a plug in chip(s) would allow you to add expansion simply and easily and allow you to grow your SBS solution separately while having all the pieces doing their things.

I cobbled together a board, used a NANO, couple ADC inputs, some switch inputs and has 2 relays out. uses simple pin headers for RTC, SD card and the nano.

the barrel connector in the upper right is for a current sensor for amp reading feeding an ADC input.


Imgur

I hope that OP hasn't been waiting for those last two replies. This thread is over two years old.