Show Posts
Pages: [1]
1  Community / Exhibition / Gallery / Re: Arduino and MLX90620 16X4 pixel IR thermal array on: February 20, 2013, 11:58:34 pm
Hi maxbot and IlBaboomba - thank you very much for the example code! It got me started very quickly. I hope you don't mind, but I added quite a few comments so I could better understand the code. I also created a sketch to calculate the alphas.

The repo is here: https://github.com/nseidle/MLX90620_Example

One main improvement was the removal of float v_ir_tgc_comp[64]. v_ir_tgc_comp is only calculated once so an array of floats can be removed. This saves a good pile (256bytes) of RAM.

Let me know if you see any problems or changes that can be made. This is a neat (but expensive!) little sensor.
-Nathan

Code:
//Calculate the temperatures seen for each pixel
//Relies on the raw irData array
//Returns an 64-int array called temperatures
void calculate_TO()
{
  float v_ir_off_comp;
  float v_ir_tgc_comp;
  float v_ir_comp;

  //Calculate the offset compensation for the one compensation pixel
  //This is a constant in the TO calculation, so calculate it here.
  int cpix = readCPIX_MLX90620(); //Go get the raw data of the compensation pixel
  float v_cp_off_comp = (float)cpix - (a_cp + (b_cp/pow(2, b_i_scale)) * (Tambient - 25));

  for (int i = 0 ; i < 64 ; i++)
  {
    v_ir_off_comp = irData[i] - (a_ij[i] + (float)(b_ij[i]/pow(2, b_i_scale)) * (Tambient - 25)); //#1: Calculate Offset Compensation

    v_ir_tgc_comp = v_ir_off_comp - ( ((float)tgc/32) * v_cp_off_comp); //#2: Calculate Thermal Gradien Compensation (TGC)

    v_ir_comp = v_ir_tgc_comp / emissivity; //#3: Calculate Emissivity Compensation

    temperatures[i] = sqrt( sqrt( (v_ir_comp/alpha_ij[i]) + pow(Tambient + 273.15, 4) )) - 273.15;
  }
}
2  Forum 2005-2010 (read only) / Development / Re: Freeduino Mini USB on: May 12, 2008, 02:25:31 pm
Hi Brian,

You're right about the drivers for the CP210x. SiLabs is a bit behind with their platform support.

The RX/TX LEDs are enable by default. But they're sink pins, not source. Reverse your LED, cut trace and tie to VCC and it should work.

Lead free solderability is a problem of the past IMHO. miniUSB SMD connectors stick real good smiley

-Nathan
3  Forum 2005-2010 (read only) / Development / Re: Skinny from SparkFun on: June 01, 2008, 08:35:39 pm
Quote
the 5v/3.3v shield thing is not a -huge- deal: avr's are (im like 99% sure) 5v compliant so, at worst, it should still work. (if using a r divider, then 1.8V is still higher than most CMOS Vih)
Awesome feedback. Thanks! I am more worried about customers buying Skinny and getting frustrated when it doesn't work with their 5V XBee shield, etc. The ATmega168 should be able to clamp higher voltages without too many problems.

Quote
ironically, if you actually solder in female headers to put a shield on it, it will be exactly the same height as a diecimila smiley
The power jack and USB connectors are pretty tall aren't they? And if we're going for pocket-ability, I'm thinking peeps will want to solder in their own wires. The female connectors were a fantastic idea in the beginning. You ever try to desolder a through hold connector like that?  smiley-wink

Quote
theres no 1k series resistor on RX0, which means if you've got a GPS (or xbee, or xport, etc) connected to rx/tx - many tutorials/examples do this - and the serial link installed (for debugging/uploading) its going to perform very strangely. if its not included, it should be noted
Good point. I will add.

Quote
the switch would be 108914981273 times awesomer if it was RA and on the board edge so you could turn it on/off when a shield is on. no big deal tho. (i am rooting for a right angle 3pole switch in the next arduino rev.)
Nuther good one. I will go scrounging.

Quote
is the 3.3v on the serial connection an input (to VCCIO) or an output (from the internal miniregulator in the 'RL). if its the latter, thats kinda sketchy.  :-/
My designs are always a little sketchy smiley If it sparks, unplug it. If it heats up, you better check VCC/GND. No really - The 3.3V pin on the male header on skinny is an input. The USB board provides 3.3V. You can have the board 'on' and hook up USB without problems. It's a little sketchy to have two vregs on the 3.3V bus at the same time, but both the FTDI vreg and the on-board SOT-23 mini vreg are both pretty burly when it comes to abuse (misuse).

Quote
the fuse seems a bit odd - the diecimila fuse is there to protect the computer's internal usb hub. a reasonable 3.3v regulator (you dont have the part number anywhere so i cant check it) should have short circuit protection.
I like PTCs. If the novice user does anything silly, the fuse takes the brunt. I shorted 3.3V and GND on the board and the PTC kicked right in. The micrel v-reg on skinny is dang impressive though. I hooked up 10, 15, 20, 25V DC and loaded the board with 100mA load. The v-reg did great up to 22V when it started to auto-shut off. I then hooked up 10V, 15V, 20V backwards. The tantalum input cap popped at 20V. Tantalums fail unsafe (shorted VCC to GND with carbon) so I removed the popped cap, attached correct 15V and the board continued to work. I like parts that can stand up to my mistakes. The diode would be good but may cause problems with batteries (~0.5V forward drop).

Quote
i dont really get the 8mhz/'lilypad' thing. i use internal oscillators all the time for cheapie kits, but i'd never do it for a project where customers are expecting to use a serial library where they cant tweak the TCCR values (and where the bootloader is pre-burned with a set value that is not calibrated). i've found that the int oscillator does vary a bit over large runs/temp/voltage. why not include (at least) a ceramic oscillator? you can get a skinny one for $0.20, a full-on crystal setup is maybe $0.35 or $0.40
Yea, my bad. I was cutting it a bit thin. Next rev already has tiny 8MHz resonator.

Quote
I don't really see any use for this. There several ways to interface an "normal" Arduino to 3.3V peripherals. And since they made a "full-sized" Arduino board anyway, why didn't they use the PDIP-Version of the chip (which can be replaced in case of an "accident").
Eberhard
Cost. None of the components on the Skinny are PTH. It's expensive to solder a DIP package. We figured we could get the price down. Besides, anyone know of the accident/fry rate of the ATmega168? Like zombies, those things are hard to kill.

Thank you again for the review. We'll spin the next rev.
4  Forum 2005-2010 (read only) / Development / Skinny from SparkFun on: May 30, 2008, 04:33:27 pm
Hi,

No spam intended. I am having a fairly in-depth conversation with David and team-arduino and we'd like to get your feedback.

I designed Skinny without really checking with people - that was my first mistake. Here's the board:

and link:
http://www.sparkfun.com/commerce/product_info.php?products_id=8689

David Mellis has problems with a 3.3V board that is pin compatible with the 5V Diecimila (and shields). He's got a point.

Here are my goals for Skinny:
1) Move USB off Board to save cost for users with multiple installations
2) Make it low-cost
3) Make it 3.3V to
a) work on battery / portability
b) directly interface to the increasing range of 3.3V devices

That was the goal of Skinny. I see the Arduino Diecimila as the 'gateway drug'. Every Arduino derivative after that is what a user would use as their 2nd board. Skinny is not meant for first-time users. It is meant to fill the void in portability/cost/3.3V.

SparkFun wants to move towards full Arduino support so any feedback is welcome.

Happy Friday!
-Nathan
5  Forum 2005-2010 (read only) / Development / LilyPad files Posted on: May 12, 2008, 02:51:27 pm
Hi All,

Leah agreed that we should post the LilyPad mainboard files. You'll find them here:
http://www.sparkfun.com/commerce/product_info.php?products_id=8465

We hope you can learn from our design and make something even cooler.

Cheers,
-Nathan
6  Forum 2005-2010 (read only) / News / Re: Sparkfun Arduino Skinny on: June 01, 2008, 08:42:37 pm
Hi All,

We're reviewing the Skinny hardware here:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1212183207

Quote
It's a square Lilypad and has a lot of unused real estate, it's a big but less expensive alternative to the stamp, maybe.

It seems a bit rushed and the description improvised, I wonder why they are in such a hurry to get it out there, particularly since they appear to have no stock available.

I noticed that they're almost sold out of Lilypad's, so I'm wondering if they plan on selling both, or just their square version.
Can you re-read the description and let me know if it still seems rushed? You may have caught the description before I got the board to go live.

It is a essentially a lilypad, with a few niceties:
Power switch
On-board v-reg
battery connector

I wanted it to be size compatible with the Diecimila, hence the wasted real estate. We're actually sucking in the connectors and getting them back on 0.1" grid to please the Arduino team and to avoid confusion with user who have 5V shields.

-Nathan

PS: CTP is that you?
7  Forum 2005-2010 (read only) / Bar Sport / Re: Is promoting Arduino related products spam? on: April 01, 2010, 06:11:45 pm
Hey Osgeld - I apologize for what you think may be abuse of the forum. I have the best intentions of participating within the Arduino community. I choose to spend my time other places than the support forum. You guys do a much better job than I can at support - I'm better at hardware and logistics (I think  smiley).

John - I can't remember ever discouraging folks from posting on the forum, especially negative feedback. We certainly can't help everyone but we do genuinely accept criticism. Unabashed users are what makes forums both bad and great.

Great book Joe! Thanks for sending us one. I enjoyed reading it! I'll email you with some feedback.

-Nathan
Pages: [1]