In my experience, people will always work 40-60 hours a week, regardless of how many hours they are forced to work. It's just that if you spend 16 hours at work because you have to you're only putting in 9-10 hours of actual work, with the rest being filled with various kinds of time-wasting activity. And if this is sustained over time then people will find ways of optimizing how to perform the time-wasting activity to get the actual work time down closer to 8 hours without making it look like they're doing so.
You can't change how the human brain works, and anything you do beyond 9-10 hours is going to be wasted time, one way or another.
Don't skimp. Get a good one, name brand (Tek, Agilent, LeCroy, etc.) at least 100 MHz bandwidth (the higher the better), 4 channels if you can afford it, some way to get data off the scope and onto a USB drive/network. Everything else is fluff and you can pay for it if you want, but I'd say the above are non-negotiable.
Don't even think about a PC-based scope. A scope is a standalone instrument, always has been, always will be.
I'm not young but I tried to get into kernel driver development (out of necessity, not so much itch-scratching) and was thoroughly frustrated by:
1) Lack of useful documentation 2) Constant churn in the kernel
I wanted to allocate memory in a driver. Lots of memory (64MB on an embedded system). I read all of LDD (latest revision) and tried everything: memory mapping, kalloc, vmalloc, ioremap, etc. etc. Nothing worked, and the book was so i386-centric that on my ARM system the explanations didn't really make sense. Eventually (we're talking several DAYS) I made something work using mmap.
And don't get me started on interrupts. Where do they even start? Where's the interrupt handler? WTF is the difference between a hard interrupt, a soft interrupt, and a virtual interrupt? I spent DAYS trying to figure out the exact sequence of code that represents travel from the hardware event to the final driver code (because it was necessary in this case) and had to give up. Interrupts are just magic.
And yes, I can read source (and I did).
As for churn, it seems like every week there's a new scheduler, a new memory allocation strategy, a new filesystem, etc. etc. QUIT IT! Is it really improving things that much? Every major system that gets replaced in the kernel obsoletes a bunch of code that now has to be rewritten to keep up. Worse, it makes whatever documentation there is (e.g., LDD) out of date. It was no fun reading parts of LDD only to look at the actual 2.6.24 source and see that parts of the book were already out-of-date (I can't remember what now).
If the kernel devs are only interested in itch-scratching then their numbers will continue to dwindle and Linux will fade in favor of a system where people actually do hard work: proper documentation.
From a device manufacturer's point of view, RS232 is free to implement. No special drivers are required on the host.
Now, for USB, you have to either pony up $2000 PER YEAR to the USB implementers forum to get your own VID/PID and distribute a driver to your customers (and deal with the resulting customer service issues) or add a chip from FTDI (or similar) and piggyback on their VID/PID but then ask your customers to download and install a generic driver that does not specifically identify your hardware.
I will have to look at KiCad again (wasn't impressed last time) but I disagree with the Eagle analysis. The freeware license allows for 2-layer 4"x3.2" boards which is definitely enough for a lot of projects.
Even the completely full version for commercial use with no layer or size limitations is $1500 for schematic+PCB+autorouter. That's not the cheapest license, that's the most expensive one!
My university has the completely unlimited professional version site license -- it is NOT limited in board space or layers. And it was at a fair one-time no-yearly-fees no-dongles no-license-server price.
And I forgot to mention that Eagle doesn't screw you over with upgrade costs. When upgrading from version 4 to version 5 (which did include some major new features), the upgrade cost was very reasonable.
It's quite likely you've been doing something wrong:-) I was at the same place, getting frustrated because perfectly reasonable circuits refuse to simulate. 99.9% of the time it was my fault, and it was a great learning opportunity. "Reasonable circuits" are not necessarily practical circuits. For example, you can put in an ideal switch into SPICE and cause brittleness, because practical circuit voltages and currents don't change instantaneously like ideal switches do. "But wait!", you say, "Inductor voltages can change instantaneously! That's what it says in my textbook!". No, they can't:-) There's a reason SPICE lets you specify an inductor's parasitic parallel capacitance.
Also, another source of brittleness/bugginess is poor third-party circuit models. I've downloaded some MOSFET models that just plain stunk.
BTW, LTSpice is my favorite simulator, hands down.
It's the changing college demographic. First, more non-traditional students that want to be able to work at home, at "work", on their own time, etc.
Second, more demanding traditional students that expect colleges to come with more amenities like better dorm rooms than what used to be the norm, private bathrooms, etc. The ability to work in the dorm room or "plug in" wirelessly anywhere on campus and do their homework is becoming an expectation.
We have computer-aided teaching studios now with no computers in them. Doesn't make sense when every student has a laptop. Soon we will not need any computer labs.
LTSpice for simulation, Eagle for schematic/PCB design.
In my experience, any tool that does both simulation and schematics is a) crap, or b) really expensive.
LTSpice is free, well supported and actively developed, high quality, and works well under Wine.
Eagle has native versions for Mac/Linux/Windows, has a great educational site license program (reasonable price, no yearly fees, no license server), does schematics+PCB+autorouting, is well supported with its own newsgroups (which are regularly attended by Eagle representatives), is scriptable, and in general is Not Evil.
I'm a big fan of FOSS but I hate to admit that best-effort programs like gEDA and KiCad just don't match up to Eagle.
If you want to see even more Win madness, take a look at these instructions (in three phases) for dealing with the DST problem on a Novell GroupWise e-mail system.
What a nightmare! And that's just for one (closed source, painful to use) application.
Now if my university were running an open-source mail server with proven software (*cough* Slackware *cough*) the upgrade would have gone something like this:
Most modern laptop power supplies are isolated switching converters, which means there really should be NO electrical path for current to flow from the AC outlet to the laptop since a transformer isolates the two sides. If you can indeed draw current from the chassis ground of the laptop itself to the earth ground, then I'd say the laptop power supply has a serious flaw.
Switching to a grounded adapter supply may have just fixed the problem by switching to an adapter that is properly constructed.
You'll never be able to make something on your own as cheaply as an off-the-shelf system that's mass produced due to economies of scale.
Focus on the end-product and don't get caught up on trying to do everything yourself. I'd buy an off-the-shelf hardware system.
You'll waste as much time setting up and tweaking the system as you will doing it manually. Automatic submission and sorting into folders by course section is simple enough, but running the program and automatically grading the output??? That's madness.
Besides, trying to distance yourself from your students as much as possible by using technology is the exact opposite of what teaching is supposed to be about. If the students know that a real human will be reading the output and providing constructive feedback, they're much more likely to take it seriously.
Don't you think 2 years is perhaps not enough time to have someone be competent at something as complex as microcontroller design?
A 2-year degree is generally associated with technicians/technologists that are not hired for design work.
When your boss asks about the relative merits of switching from a microcontroller-based product to one that uses CPLD's, you'll be able to speak intelligently about the tradeoffs.
Go to The Slackware Store and get a cute little penguin, or preorder Slackware 10.1. This is not a bad time to show Patrick some appreciation for what is IMHO still the best distribution out there.
Pad2Pad might be nice for rank beginners but as others have commented, you quickly hit the wall with their limited parts list.
With freeware programs like Eagle available and reallycheap circuit board manufacturing options, there's no reason to get locked into a service like Pad2Pad.
This is actually a good idea. It is not a substitute for having a human read your essay for actual content rather than style. In fact, the company's FAQ states that you can easily fool the software by writing nonsense with perfect style.
The good part about it is that as a professor I can point to a bad essay and convince the student that it's not only bad according to my opinion but that it's bad according to EVERYBODY'S OPINION! Students so often believe that (a) professors are nuts and are just out to get them, or (b) they grade too harshly. Having an objective tool to back up a grade is a good thing.
Whatever happened to keeping politics of all sorts out of school curriculum? I guess that went out the door when a Women's Studies course was instated at my local university, but a Men's Studies course was removed because it wasn't "politically correct."
There will always be politics at universities, but politics between faculty is much better than the politics of companies coming in and trading cash for curriculum.
The University is one of the last of the good places, where faculty generally try to put together a curriculum that they believe is in the best interests of the students. There are often violent disagreements, and some faculty just want to teach subjects because it's their favorite area, but in the end, it's just a big war of words with low-level university politics being as bad as it gets.
But now, when you throw in multi-million dollar deals, the balance swings dangerously in the direction of a curriculum that is constructed to be in the best interests of a company, and not of the students. When you put up the beliefs of faculty against a multi-million-dollar behemoth, the faculty lose, they lose their spirit and dedication to the best interests of the students, and we all lose.
The only winners will be rich companies who will be able to afford to convert universities to their own personal training academies.
A database of 10 million users and their credit card numbers, bank account numbers, etc. all in one place. Sounds like a juicy target for hackers. Credit cards may offer some degree of protection but how responsive would your bank be if you told them that you posted your checking account number on the Internet and someone used it to empty out your account.
One of the purposes of clocking is to allow data to "resolve". That is, the output of a gate will change to its new state within so many nanoseconds, and this had better be less than the time it takes for the next clock edge to arrive. In this sense, much of the time used in computation is wasted, because the design was based on the worst-case published specs of the manufacturer. In reality, the gate may only take 6ns to change to a new state, but the design spec is 25ns so the minimum clock period is 25ns (roughly).
In a self-timed circuit, the instant the gate changes, the next phase of the circuit is ready to go so there is no time "wasted" (19ns in the above example) waiting for the next clock.
This concept of uncertainty (between how much time the gate really takes to propagate and what the published maximum is) is also the reason why a small number of asynchronous lines can be faster than more synchronous lines. The more lines you have, the higher the possibility that there will be "skew" (i.e., different propagation delays) through them, hence you have to wait longer for all of them to come to the same state. The fewer the lines, the lower the skew, the less you have to wait (there is a reason why USB is a serial bus, not a parallel one).
There's some interesting reading on this topic at www.theseus.com. (I have no connection to them)
Be proud of being on the banned list. The more "regular" sites get banned, the less people who choose to use these filters (instead of common sense or supervision) will see of the Internet. Eventually, the uselessness of these filters will become apparent.
In my experience, people will always work 40-60 hours a week, regardless of how many hours they are forced to work. It's just that if you spend 16 hours at work because you have to you're only putting in 9-10 hours of actual work, with the rest being filled with various kinds of time-wasting activity. And if this is sustained over time then people will find ways of optimizing how to perform the time-wasting activity to get the actual work time down closer to 8 hours without making it look like they're doing so.
You can't change how the human brain works, and anything you do beyond 9-10 hours is going to be wasted time, one way or another.
Not an easy read but a good backgrounder on this, which also seems to be a Department of Justice advocation of direct manufacturer sales:
http://www.justice.gov/atr/pub...
Don't skimp. Get a good one, name brand (Tek, Agilent, LeCroy, etc.) at least 100 MHz bandwidth (the higher the better), 4 channels if you can afford it, some way to get data off the scope and onto a USB drive/network. Everything else is fluff and you can pay for it if you want, but I'd say the above are non-negotiable.
Don't even think about a PC-based scope. A scope is a standalone instrument, always has been, always will be.
I'm not young but I tried to get into kernel driver development (out of necessity, not so much itch-scratching) and was thoroughly frustrated by:
1) Lack of useful documentation
2) Constant churn in the kernel
I wanted to allocate memory in a driver. Lots of memory (64MB on an embedded system). I read all of LDD (latest revision) and tried everything: memory mapping, kalloc, vmalloc, ioremap, etc. etc. Nothing worked, and the book was so i386-centric that on my ARM system the explanations didn't really make sense. Eventually (we're talking several DAYS) I made something work using mmap.
And don't get me started on interrupts. Where do they even start? Where's the interrupt handler? WTF is the difference between a hard interrupt, a soft interrupt, and a virtual interrupt? I spent DAYS trying to figure out the exact sequence of code that represents travel from the hardware event to the final driver code (because it was necessary in this case) and had to give up. Interrupts are just magic.
And yes, I can read source (and I did).
As for churn, it seems like every week there's a new scheduler, a new memory allocation strategy, a new filesystem, etc. etc. QUIT IT! Is it really improving things that much? Every major system that gets replaced in the kernel obsoletes a bunch of code that now has to be rewritten to keep up. Worse, it makes whatever documentation there is (e.g., LDD) out of date. It was no fun reading parts of LDD only to look at the actual 2.6.24 source and see that parts of the book were already out-of-date (I can't remember what now).
If the kernel devs are only interested in itch-scratching then their numbers will continue to dwindle and Linux will fade in favor of a system where people actually do hard work: proper documentation.
From a device manufacturer's point of view, RS232 is free to implement. No special drivers are required on the host.
Now, for USB, you have to either pony up $2000 PER YEAR to the USB implementers forum to get your own VID/PID and distribute a driver to your customers (and deal with the resulting customer service issues) or add a chip from FTDI (or similar) and piggyback on their VID/PID but then ask your customers to download and install a generic driver that does not specifically identify your hardware.
Gimme RS232 any day.
Just looked at KiCad...it doesn't have an autorouter.
Sorry, it's not even in the same class as Eagle then.
I will have to look at KiCad again (wasn't impressed last time) but I disagree with the Eagle analysis. The freeware license allows for 2-layer 4"x3.2" boards which is definitely enough for a lot of projects.
Even the completely full version for commercial use with no layer or size limitations is $1500 for schematic+PCB+autorouter. That's not the cheapest license, that's the most expensive one!
My university has the completely unlimited professional version site license -- it is NOT limited in board space or layers. And it was at a fair one-time no-yearly-fees no-dongles no-license-server price.
And I forgot to mention that Eagle doesn't screw you over with upgrade costs. When upgrading from version 4 to version 5 (which did include some major new features), the upgrade cost was very reasonable.
TOPSPICE is $500!!! And only for Windows.
No thanks.
It's quite likely you've been doing something wrong :-) I was at the same place, getting frustrated because perfectly reasonable circuits refuse to simulate. 99.9% of the time it was my fault, and it was a great learning opportunity. "Reasonable circuits" are not necessarily practical circuits. For example, you can put in an ideal switch into SPICE and cause brittleness, because practical circuit voltages and currents don't change instantaneously like ideal switches do. "But wait!", you say, "Inductor voltages can change instantaneously! That's what it says in my textbook!". No, they can't :-) There's a reason SPICE lets you specify an inductor's parasitic parallel capacitance.
Also, another source of brittleness/bugginess is poor third-party circuit models. I've downloaded some MOSFET models that just plain stunk.
BTW, LTSpice is my favorite simulator, hands down.
It's the changing college demographic. First, more non-traditional students that want to be able to work at home, at "work", on their own time, etc.
Second, more demanding traditional students that expect colleges to come with more amenities like better dorm rooms than what used to be the norm, private bathrooms, etc. The ability to work in the dorm room or "plug in" wirelessly anywhere on campus and do their homework is becoming an expectation.
We have computer-aided teaching studios now with no computers in them. Doesn't make sense when every student has a laptop. Soon we will not need any computer labs.
LTSpice for simulation, Eagle for schematic/PCB design.
In my experience, any tool that does both simulation and schematics is a) crap, or b) really expensive.
LTSpice is free, well supported and actively developed, high quality, and works well under Wine.
Eagle has native versions for Mac/Linux/Windows, has a great educational site license program (reasonable price, no yearly fees, no license server), does schematics+PCB+autorouting, is well supported with its own newsgroups (which are regularly attended by Eagle representatives), is scriptable, and in general is Not Evil.
I'm a big fan of FOSS but I hate to admit that best-effort programs like gEDA and KiCad just don't match up to Eagle.
If you want to see even more Win madness, take a look at these instructions (in three phases) for dealing with the DST problem on a Novell GroupWise e-mail system.
What a nightmare! And that's just for one (closed source, painful to use) application.
Now if my university were running an open-source mail server with proven software (*cough* Slackware *cough*) the upgrade would have gone something like this:
...did he get his $68,000 back from Intel?
Switching to a grounded adapter supply may have just fixed the problem by switching to an adapter that is properly constructed.
You'll never be able to make something on your own as cheaply as an off-the-shelf system that's mass produced due to economies of scale. Focus on the end-product and don't get caught up on trying to do everything yourself. I'd buy an off-the-shelf hardware system.
You'll waste as much time setting up and tweaking the system as you will doing it manually. Automatic submission and sorting into folders by course section is simple enough, but running the program and automatically grading the output??? That's madness.
Besides, trying to distance yourself from your students as much as possible by using technology is the exact opposite of what teaching is supposed to be about. If the students know that a real human will be reading the output and providing constructive feedback, they're much more likely to take it seriously.
Don't you think 2 years is perhaps not enough time to have someone be competent at something as complex as microcontroller design? A 2-year degree is generally associated with technicians/technologists that are not hired for design work.
When your boss asks about the relative merits of switching from a microcontroller-based product to one that uses CPLD's, you'll be able to speak intelligently about the tradeoffs.
The other kid's job will be offshored.
I think you were smart.
Go to The Slackware Store and get a cute little penguin, or preorder Slackware 10.1. This is not a bad time to show Patrick some appreciation for what is IMHO still the best distribution out there.
With freeware programs like Eagle available and really cheap circuit board manufacturing options, there's no reason to get locked into a service like Pad2Pad.
Check out my Digital Design & Construction Wiki for lots of resources on do-it-yourself electronics design.
The good part about it is that as a professor I can point to a bad essay and convince the student that it's not only bad according to my opinion but that it's bad according to EVERYBODY'S OPINION! Students so often believe that (a) professors are nuts and are just out to get them, or (b) they grade too harshly. Having an objective tool to back up a grade is a good thing.
There will always be politics at universities, but politics between faculty is much better than the politics of companies coming in and trading cash for curriculum.
The University is one of the last of the good places, where faculty generally try to put together a curriculum that they believe is in the best interests of the students. There are often violent disagreements, and some faculty just want to teach subjects because it's their favorite area, but in the end, it's just a big war of words with low-level university politics being as bad as it gets.
But now, when you throw in multi-million dollar deals, the balance swings dangerously in the direction of a curriculum that is constructed to be in the best interests of a company, and not of the students. When you put up the beliefs of faculty against a multi-million-dollar behemoth, the faculty lose, they lose their spirit and dedication to the best interests of the students, and we all lose.
The only winners will be rich companies who will be able to afford to convert universities to their own personal training academies.
A database of 10 million users and their credit card numbers, bank account numbers, etc. all in one place. Sounds like a juicy target for hackers. Credit cards may offer some degree of protection but how responsive would your bank be if you told them that you posted your checking account number on the Internet and someone used it to empty out your account.
In a self-timed circuit, the instant the gate changes, the next phase of the circuit is ready to go so there is no time "wasted" (19ns in the above example) waiting for the next clock.
This concept of uncertainty (between how much time the gate really takes to propagate and what the published maximum is) is also the reason why a small number of asynchronous lines can be faster than more synchronous lines. The more lines you have, the higher the possibility that there will be "skew" (i.e., different propagation delays) through them, hence you have to wait longer for all of them to come to the same state. The fewer the lines, the lower the skew, the less you have to wait (there is a reason why USB is a serial bus, not a parallel one).
There's some interesting reading on this topic at www.theseus.com. (I have no connection to them)
Be proud of being on the banned list. The more "regular" sites get banned, the less people who choose to use these filters (instead of common sense or supervision) will see of the Internet. Eventually, the uselessness of these filters will become apparent.