Show Posts
Pages: 1 ... 426 427 [428] 429 430 ... 584
6406  Development / Other Hardware Development / Re: ATMEL Mega1284P evaluation board avalible on: May 28, 2011, 10:31:03 am
Quote
Argh, I miss using Altium. You are using one right?
I was a very early adopter of the original DOS-based Protel, I pushed for it at the company I worked for. Moving from stencils and Bishop tape to CAD was a real leap of faith in those days.

We used to get beta releases (from the guys who wrote it in Tasmania IIRC), we'd phone them and talk about features we'd like in the next release.

Despite Altium's heritage it's nothing like Protel, it's bloody good though.

______
Rob
6407  Development / Other Hardware Development / Re: ATMEL Mega1284P evaluation board avalible on: May 28, 2011, 06:50:32 am
I'd say the top left and bottom right mounting holes have components/tracks way too close, a screw head would easily short some of those tracks and maybe foul the headers.

______
Rob
6408  Using Arduino / Sensors / Re: 12V Battery monitor - current and voltage on: May 28, 2011, 03:13:33 am
So the big loads are off your start bank are they? I hope so because that's no way to treat deep cycle batteries smiley

The fore and aft thrusters will pull 600A+ in total (did I get the numbers right) so running both at once (does that ever happen?) will certainly draw a lot from the batteries.

Assuming you can measure that I'm not sure how you relate that to battery SOC as 1sec @ 600A is not the same as 600secs @ 1A because I'm sure the relationship is not linear.

Quote
I know that I need historic currents to be able to give a healt state of the battery bank.
Yep, I'm just talking about a SOC meter to tell you the current state of charge, that's different to historic logging to get battery health.

______
Rob
6409  Using Arduino / Sensors / Re: 12V Battery monitor - current and voltage on: May 28, 2011, 02:08:52 am
IIRC as a rule of thumb you charge wet cells at 10% of their AH rating, so for a 140A charging current you would need one heck of a battery bank. You have a 230Ah bank, so I would say anything more than around 20A would be an issue.

That makes the problem really easy, get an ACS712 current monitor chip, or read across a shunt with something like an AD8210.

To determine the SOC (state of charge) is harder, you have to implement "Pukets Exponent" (sp?) which basically says you don't get out of a battery what you put in. This is a number that you multiply the current out by (or I guess divide the current in) to allow for the inefficiencies in the battery.

Once again IIRC for wet cells the number is often used is 1.2, although in theory you should ask the manufacturer.

And of course you can't just read voltage to do this, you have to know the recent current history of the system, like whether the batteries were held in absorption for long enough etc.
 
It's a bit of a black art to which I'm not privy, still I think you can do a reasonable job with simple tools and algorithms.
______
Rob
6410  Development / Other Hardware Development / Re: ATMEL Mega1284P evaluation board avalible on: May 27, 2011, 10:48:53 pm
I wonder if your drill size problem was that the via "anulars" were too small, ie the copper around the drilled hole. This happens when the hole it too large for the pad according to the rules.

As for making components, I don't even bother to search for them, I just make things as I need them (but I don't use Eagle).
______
Rob
6411  Topics / Product Design / Re: Wanted: Arduino expert for Brisbane based Prototyping Project on: May 27, 2011, 03:36:58 am
I have a friend who got a product written by someone at coders-r-us or whatever, and to be fair the product was delivered at a price that would hardly have paid me for a day.

BUT

It took forever, maybe even a year I forget now. And EVERY tiny change takes a month.

Last I heard they had version 2 out, and had been waiting 3 months for the source code.

This probably isn't common (one would hope not) and certainly there are issues with hiring people as well. Just putting another perspective on the "argument".

______
Rob
6412  Community / Bar Sport / Re: Does anybody really know what time it is? on: May 27, 2011, 03:27:14 am
So I guess we'll all be dumping our RTCs and start using ATCs soon.

______
Rob
 
6413  Using Arduino / Programming Questions / Re: Fast Pulse Counter - High Speed Counter on: May 26, 2011, 09:24:45 am
I hope I haven't got my numbers out by an order of magnitude here smiley

Just looking at the three numbers you've got above

7.543KHz
7.530Khz
7.552KHz

The difference in period between those three is < 1uS.

The "ISR"s you have aren't really ISRs at all, they are functions called by the the real INTx ISR, however as the real ISR doesn't re enable interrupts they are effectively the same thing but with a higher overhead.

Given that these two interrupts are asynchronous with the program and each other I reckon there are two potential issues.

a) The interrupt latency is variable, and with tolerances as tight as you have this could easily make a difference, ie the difference between getting a count of 7.543KHz and 7.530Khz 228nS or about 3-4 processor cycles.

b) If you are in INT0 and get INT1 (or VV) then the second interrupt will be ignored until you finish the first, meanwhile the timer is happily ticking away. Likewise if you are in the millis() interrupt.

I'm not convinced this can be totally overcome, but changing the "ISR" to something that did almost nothing like

Code:
volatile byte INPUT1_t;
volatile byte new_count_1;
void INPUT1_ISR()
{
  INPUT1_t = TCNT0;     
  new_count_1 = true; // set flag for external processing to occur
}

and doing all the other work in the main loop would have to help. At least then there's less chance of interrupts clashing. But there's still a chance and you have a double whammy, the higher the frequency the more likely to clash and the more affect it has on the count.

Interrupts are fine but they do introduce these sort of issues.

I think for high-speed counts using pulseIn() may be a better option. It is blocking but it sounds like you have known times, say directly after servicing the i2c protocol with the master, where you can afford to concentrate on this.

As pulseIn() does nothing but look at the state of a pin it is very deterministic, I would also kill interrupts around the pulsIn() call, this will affect millis() and maybe other things but you don't need them by the look of the program.

If the gadget is supposed to measure a large range of periods then a two-pronged approach may be the idea. PulseIn() for high speed and the other for low speed. Of course with pulseIn() you would have to measure both mark and space periods and add them together.


______
Rob


6414  Community / Exhibition / Gallery / Re: Greenhouse automation on: May 24, 2011, 07:03:47 pm
Thanks for the links,

I'm experienced in Wed dev and also embedded micros but have never tied the two together and that blog/tute gives me a better idea of how to do it.

I'd like to do this some day before too long, at present I'm designing a monitoring and control network (www.busnet.robgray.com) and that is taking all my time and will for a while I suspect.

When it's running I'd like to be able to share data on the web like that.

______
Rob
6415  Community / Bar Sport / Re: Angle Trisection Approximation on: May 24, 2011, 06:10:26 am
That's pretty clever, but I know a better way.

Use compass to find straight edge, then use straight edge to hoke out calculator from behind the sofa where it fell the other day.

Then use the calculator smiley

Woops, there's a bug in that algorithm, compass has been defined as type "direction_finding_device", it should be "circle_drawing_device".

______
Rob
6416  Using Arduino / LEDs and Multiplexing / Re: Possible to operate a shift register manually with switches? on: May 24, 2011, 05:14:36 am
Quote
Presumably that sort of information is included in an ICs datasheet?
Yep, but it's not always obvious when you're not used to reading data sheets.

Often it's shown as a little triangle on the logic diagram.

Also if anything is called a "clock" you can be 98% sure it's edge triggered.

And the description will often say "on the rising edge of XX" sort of thing.

Then as a last resort there's the timing diagrams.
______
Rob
6417  Using Arduino / LEDs and Multiplexing / Re: Possible to operate a shift register manually with switches? on: May 24, 2011, 04:42:28 am
Quote
as the pins need to be kept HIGH for the relevant cycle and then set LOW again
Which pins?

The only one that matters is the clock and it's edge triggered, so whether you give it a short high pulse or a short low pulse as far as the eye is concerned the SR will update the same way.

______
Rob
6418  Development / Other Hardware Development / Re: ATMEL Mega1284P evaluation board avalible on: May 22, 2011, 09:55:12 am
Nice-looking layout, not auto-routed I'm guessing.

I can't read the schematic, are you using an inductor on AVCC?

______
Rob
6419  Community / Exhibition / Gallery / Re: Modular Stackable Microcontroller System (lots of pics) on: May 21, 2011, 09:25:07 pm
Yep I'd stick with a single master.

On my modules I have them report all sorts of "vendor" info such as serial #, SW and HW revision, revision for the system the board is tested for, plain English name for the board, full vendor name, abbreviated vendor hame, unique board type number so a plug in diagnostic device can know exactly what the board should do etc. 

I suppose you will only have one "vendor" so don't need lots of that but I'd certainly add revision numbers etc. If you make lots of these you'll quickly lose track of what's what.

______
Rob
6420  Community / Exhibition / Gallery / Re: Modular Stackable Microcontroller System (lots of pics) on: May 21, 2011, 08:07:24 am
Quote
starting another mode in the Processor will clear all addresses on the modules by way of a broadcast to Address 0.
If you only want to reset one board pull all the others before you broadcast this.

OR (and better)

You'll have some form of monitor running on the main processor I assume, so you can see what boards are there etc. And you already have code to get a board to change from 119 to N, can't you just get it to change from N to 119 and do this as a command in the monitor.

______
Rob
Pages: 1 ... 426 427 [428] 429 430 ... 584