Early efforts

A project log for SentriFarm

Solving a key farming problem: is it safe to harvest / spray / sow today? (+experiments with 'big' data in agriculture)

pastcomputepastcompute 03/15/2015 at 12:280 Comments

A bit of background

Possibly some of what I'm talking about here may be a bit basic for many hackaday regulars. I am an experienced software engineer & hacker but have not had as much time as I would like to have played with the micro end of embedded, so I am documenting experiences that are either new to me, or I am very rusty in. Recording my experiments may also help other new users.

Early Prototyping Efforts (hardware Hello World)

I will be building various prototypes using the digisparks even if a more evolved sensor design requires something else eventually.

The only arduino I had previously used to any extent was the leostick. I had purchased a comple of digispark last year (and a lot of other unfotunately sitll unused gear) so today I finally had a chance to find my feet with them.

Any competent software engineer will tell you that a very important task in any new software project is to build a hello world, to exercise the toolchain and the source code management systems, and sometimes overlooked, keep it maintained. I figure this is probably just as important even for something relatively trivial like an arduino based project. So I have started a github for my efforts already.

Running on older PC hardware

Rather than dragging around laptops I have an older desktop configured, a SFF case with a now-venerable VIA EPIA-5000 fanless motherboard. I built this up running Debian Squeeze 486 from a compact flash card, so it is a noiseless computer, which is great, because my lab is out the back and is a bit closer to nature than my office, I can hear the wind and birds and wildlife, etc. Anyway I got the digispark IDE which is essentially the Arduino IDE with digispark hardware running, and after fixing the usual permissions issues still had a problem, an Illegal Instruction error. This had be stuck for a bit then it clicked that my hardware is actually not even capable of running all 686 code... so after rebuilding the micronucleus driver and digispark avrdude things finally worked and I had a flashing LED / hello world.

One quirk with the digispark is you need to keep un/re-plugging it before re-flashing or the upload fails.

I then had to add in serial debugging by lashing together a couple of resistors and a diode, this worked quite well. (One reason I still have the old PC in the lab is it has two proper RS232 ports...)

Finally I hooked up a DHT-11 temperature and humidity sensor, using a low-memory no-frills DHT library. I verified this was working with a very brief blast frmo the heatshrink gun. So far, so good...