Join Fred Ebeling at the NCSU Triembed meeting on the 13th as he shares a short pictorial history of breadboarding and gives us an overview of his workbench and prototyping tools. Details here.
I posted slides and code for the examples from the Arduino Interrupt presentation I did on Monday, September 8, 2014. There was discussion after the presentation on how to sleep for an hour or a day or … I added another example to show one way to simulate a long sleep with multiple 8 second WDT interrupts.
This week on The Amp Hour Chris Gammel’s guests are Michael Ossman, the guy behind a (cheaper, simpler than previous, highly capable) software defined radio system and Greg Charvat, the guy behind a coffee can-based synthetic aperture radar system that uses your PC’s “sound card”. One of the most easy on the ears, friendly and interesting sharing between techies I’ve listened to in a good while. For those interested in learning about SDR Michael has started a tutorial series.
This house used to have a wood stove in the basement and for years I’ve been using the vent to get coax to the roof-mounted TV antennas, but now it’s got a serious 240v fan jammed in it for a fully kludgephonic reflow oven vent.
Now I just need to find or make a fume hood that can properly handle the huge exhaust flow out the bottom of the oven when it’s in “cooling” mode. Whatever I end up with will be fully enclosed (maybe a plastic “flap” or door on the front) except for an inlet air arrangement that I haven’t thought through yet. Maybe holes in the table top below the oven and yet another vent hose that comes from “someplace” where I can get air so there’s little chance of fumes coming out that hose?
Please don’t leave a comment about masking tape inside the oven. It isn’t “tape fumes” I’m arranging to avoid.
Here is a fast way to make IC part numbers easy to read (follow this link, then click on “Dicas práticas em eletrônica“). Thank you Luciano Sturaro!!
This is translated to English with larger graphics in the Stack Exchange Q&A below. However it’s this easy:
- Clean the IC surface with alcohol and let it dry
- Rub chalk on it
- Gently wipe the IC surface
Update: Reality Bites
Of the few dozens of different chips I’ve tried this chalk trick on in the past few days I’ve found that maybe 15% are nearly immune to it.
At the TriEmbed meeting this coming Monday I’ll be asking if others are interested in joining a systematic self-study of Kicad.
I knew I’d be driven to this sooner or later, but the future is now, as they say. I’m working on a combination clock calibrator and frequency counter and find the design process dominated by the challenge of fitting the silly thing into a single Eagle schematic sheet.
The current rough cut of the circuit building blocks is the super-compressed schematic toward the bottom of the project page. This hodge podge of schematic symbols jammed together make it clear that the free version of Eagle is not up to expressing a system this large and complex. (Correction: I have a license for non-educational use, but just the cheap one that has the same size constraints as the free version.)
Update: A “Kicad Study Group” page has been added and at least a half dozen folks expressed interest in taking part.
Update: Nobody’s missed anything, time’s just run short this month.
Many Arduinos are based on the Atmega 328 P chip. Note that P. If you buy raw chips be sure the P is present. When you look up “Atmega328” at a site like Digikey the P and non-P versions are side by side and you might just go for the cheaper one without noticing the difference. You will be sucking persimmons if you’re missing the P. I am now a relative and reluctant expert about working around missing Ps. One might say I’m P‘ing into a pot with information I wish I didn’t have. Actually, it was many months ago that I accidentally bought some P-challenged Atmega328 chips. But it was only today that I realized I was down to the bottom of the barrel and forced to replace a P with a non-P in an Arduino Uno, and that situation can best be spelled PO.
THIS CHIP BELOW IS THE Atmega328P YOU WANT:
THIS CHIP ABOVE IS THE Atmega328 CHIP YOU DO NOT WANT. Notice how you can’t read the markings? That’s an accidental hint about which is the correct part, but also indicative of the apparent conspiracy the chip makers are involved in to make sure non-machines (i.e. us) can’t read the markings in ordinary conditions. Both chips were close to flat, but the bottom one was obviously not flat (or tilted with respect to the light source) enough!!!
Postscript: Making a 328 chip run in an Uno is a total Pain. I should probably document that some place to save the next person some trouble. However once it’s done the fact that it’s the “wrong chip” is no longer visible if you’re using the bootloader to program it.
For those using Linux or something functionally equivalent for “Arduino development”, Tim Marston’s Arduino make file makes a wonderful tool. Apart from saving lots of mouse movements, using this make file in combination with the AVR tools and Arduino libraries is drastically faster. You have to see the difference to believe it could have been possible to make the Arduino IDE look so dog slow.
Anyway I wanted to share one detail to save others grief if/when they use this tool with Attiny chips. The make file passes “-D” to avrdude, and that won’t fly with chips like the Attiny84A that need a chip erase cycle if you also want avrdude to verify the bytes it’s programmed. Here is the problematic line:
AVRDUDEFLAGS += $(addprefix -C , $(AVRDUDECONF)) -D
My quick hack was to use one of my (Bourne/Bash shell) scripts to determine if I’m programming one particular chip vs another (by reading its signature) and then pass the appropriate switch in for avrdude. So my make file looks like this:
AVRDUDEFLAGS += $(addprefix -C , $(AVRDUDECONF) $(CHIP_ERASE)
And then when I invoke the make command I’ll use something like this:
make blah blah CHIP_ERASE=$ERASE blah blah upload
Then my script sets ERASE to “-D” or “” depending on the chip type.
Consult your specific AVR chip’s data sheet to determine whether it can get along without a chip erase cycle (e.g. like the Atmega 328p).
Addendum: The avrdude “-e” option can be appended and it will override -D and force an erase. So if the last AVRDUDEFLAGS assignment has the $(ERASE) reference the sense can be flipped and it becomes less confusing, and you just need to feed in a “-e” for the chips like Attiny that lack page erase.
Also, I forgot I’d removed the “-V” switch from Tim’s make file and this of course suppresses verification. So if you’re reading this Tim, I can understand why you might have been scratching your head.
Finally, one might assert that the “-e” can trivially be appended with something like this:
make -f arduino.mk blah blah AVRDUDEFLAGS=”-e”
Except this doesn’t work as documented in the make file comments. That is, if you try to do this you end up with the “-e” replacing ALL the avrdude flags: the append operations in the make file are trumped by the command line assignment. Maybe I’m missing a make flag that changes the variable assignment semantics? Don’t know, but I’ll try to return to this later and maybe develop a patch to incorporate automation features to guess a programmer to use and chip to program.