![]() |
Remote Controlled Outlet Strip |
Ø Earlier, before keeping track of dates o Looked up various relays … decided on G3MB-202P-5DC from Omron o Scrounged around for random parts § Romex cable, CAT5 cable, the surge strip, buttons, etc o Sent emails about sample parts o Drew up preliminary schematics Ø Friday 4/9 o Started physical assembly § “Borrowed” a sponge and solder wick from 315, but the irons in 476 suck § De-soldered ZIF sockets from old boards § De-soldered plug from 5V power supply · Might be issues with continuity between solder pads and lines § Attempted to connect neutral wires for outlet · Bent one of them too far… may cause trouble later – weak connection o Gathered parts § Perfboard, relays, voltage regulator, etc Ø Saturday 4/10 o Continued assembly § Soldered wires to power supply, wrapped in electrical tape · Tested it – it’s good § Started soldering relays to perfboard · Hard to find a place for it to fit in the box… should be good by input wires · Got cat5 wires hooked to inputs, common 120VAC input soldered Ø Monday 4/12 o Met with Bruce to get transmitter soldered and notch cut in end cap § Discussed methods of detecting dying battery – Zener diode at 8V, using internal bandgap of ADC on chip with voltage divider o Completely assembly § Hooked all outlets to ground and corresponding output of relays § Fit everything in (relay block, circuit breaker, power supply, wires), taped up anything that might contact something else, put wire caps on the main 120VAC inputs, closed the box o Tested it § Hooked up 4 lamps and pushbuttons to the relay inputs § It worked!! For about 30 sec, and then died § The 5V power supply was busted… looked and smelled like something was burnt, continuity between output +5 and Gnd § Tested everything else using 9V battery and LM340 – relays still good o Found a 74HCT30 and tested it – it’s good o Looked through data sheets for pins to use for various things o Started soldering circuit together on perfboard § Extremely tedious, annoying, pointless, sensation of burning § Decided to just do it on the breadboard, maybe move to soldering later if time § Can’t afford nicer solder boards – other stuff was scrounged o Heidi worked on the transmitter code a bit, and helped with the soldering Ø Wednesday 4/14 o Took the box apart and wired in a new 9V power supply – this one has a separable plug and transformer section, so if another one gets blown up, we won’t have to open the box again. Besides, it was a little bigger than the previous one, and didn’t fit o It was at that point that I was reminded of the importance of unplugging your circuit before grabbing leads that connect to 120VAC o Made a 5V supply from a full wave bridge rectifier (4x 1N4001 and LM340) o Made a clock circuit for the breadboard (8MHz crystal and 2x 22pF capacitors) o Made a connector for the cat 5 cable connected to the relays, but then realized we should make it keyed, to prevent accidental insertion backwards, which would destroy the relays o Hooked up LEDs to the same pin as the relays, to see if the parallel resistance would matter – didn’t seem to, but hard to tell o Started to reconsider the decision to breadboard stuff instead of soldering… the soldering really isn’t that complex for the receiver, and half of the transmitter is done Ø Thursday 4/15 o Fixed the connector to the relays such that it is keyed – put two grounds to the same pin, and filled in that hole – can only put it in the right way o Decided soldering is annoying, but worth it – takes forever though § First prototype a circuit on the breadboard, and once it’s good, copy it § Did some work on the receiver – everything worked · Put the 5V supply circuit on the perfboard and soldered it in · Put the status LEDs and resistors, and soldered those · Started to solder basic functionality stuff (capacitors between ARef/Gnd and AVcc/Gnd) Ø Friday 4/16 o More soldering § Random capacitors and resistors to make the microcontroller function § Programming port § Connected LEDs to microcontroller § Relay output port o Tested it § Preliminary code to blink various LEDs and relays – worked properly the first time – relays successfully controlled by microcontroller o Started coming up with communication scheme – what to use bits for, data frame, error correction, synchronization issues, etc o Figured out how to detect low voltage on battery of transmitter § Use internal 2.56V bandgap ARef, and connect very large resistive voltage divider across battery § when it falls below a certain level, light an LED Ø Saturday 4/17 o Heidi did some soldering of random capacitors, resistors, and the crystal Ø Sunday 4/18 o We soldered the socket for the NAND gate into place o Figured out resistors for battery check § Maximum (at 9V) has to be below ~2.4V, to account for variations between bandgaps of different microcontrollers § 1MΩ and 330kΩ · 9V => 2.33V, 8V => 1.98V, 7V => 1.74V · 6.7 μA current through the divider – practically nothing Ø Monday 4/19 o Finished preliminary construction § Soldered receiver and transmitter into place § Measured and cut antenna wires § Status LEDs for transmitter § Power supply section for transmitter § Battery voltage monitoring resistors · Discovered bandgap reference does change slightly with Vcc, but it shouldn’t be too much of a big deal if we choose appropriate transitions o Started software testing § Plugged it in, programmed both boards… and nothing happened § Realized we needed a more definite specification of what was being transmitted, and different states to be in – started defining specs better § Started verifying bit patterns in status registers… some were incorrect § Code needs a lot of work before it’ll do something useful Ø Wednesday 4/21 o Spoke with Atmel sales contact § Will sample two ATMega32L-8PI chips… may take 2 weeks though o Added a power jumper to the transmitter board § Another way to save battery life, as well as monitor current usage § At first, it was drawing ~75mA active, 40mA powered down § Then, after some modification to the code, 35mA active, 5mA powered down § We’ll see what we can do about that 5mA – should be well under a milliamp o Worked on code a lot § Sometimes bugs would be bad enough that a new program was necessary § Just write a shell of a program, to try to isolate the problem o Rewrote transmitter code § Random things going wrong, debugging excessive power usage § Only transmit if a single button is pressed § Transmit the port when waking up, otherwise use debounce state machine § Not transmitting continuously, so use a data frame, with parity § Turns out the microcontroller USART is at 5V for idle, not 0V as initially expected · Turn off the UART transmit and zero the port when not in use to save power in the radio transmitter § Eventually got something working, saw the waveform show up at the radio transmitter input, but couldn’t tell if it was actually doing anything o Started rewrite of receiver code § Huge mess – started over § Wrote receive interrupt to handle data frames – hopefully robust, but hard to tell – ignores input if any parity or frame errors, or if missing start or stop tags § No heartbeat LED for a while, nothing appeared to be working § Turned out the USART was initialized improperly – constantly taking an interrupt that had no routine § Used oscilloscope – data transmitted is actually showing up on receiver output · Incredible! It’s like magic · Although, it’s pretty noisy, and often is a gigantic mess · Probably will need low-pass filtering § Data not successfully received though – needs more work § Will have to figure out state machines for all the various modes of operation Ø Thursday 4/22 o Figured out the source of the powered down current draw – it’s the voltage regulator § LM340 has 5mA quiescent current – not acceptable § 74HCT30 = 2μA, MCU = 5μA, transmitter = 100μA § Tried alternate circuit with a 5.6V zener diode, 10K pot, and npn transistor – lower quiescent current, but hard to tune the output correctly § Found better parts by Analog Devices, ordered samples – overnight delivery · 17μA quiescent, 0.2μA standby (probably won’t use) · Require 10μF capacitor · Can’t use the 74HCT30 to power down the supply regulator, since it only operates from 4.5V to 5.5V o Worked on the radio link § Low pass filtering won’t help – not that type of problem § At 2400bps, the reception seems to have a delay on the rising edge § Slowed it down to 1200bps, so it wouldn’t be as much of an issue § Tried transmitting with 2 stop bits § Getting frame errors in strange places, always on the one data byte we need § Haven’t found a byte sequence to get the receiver synched up – tried varying combinations of 0xaa, 0xff, 0x00, 0x0f, different start and stop bytes, etc. § After transmitting a constant high (idle) for a bit, the receiver drops out, and thinks it’s a zero – frame error § Found an error in UCSRC setting - was incorrectly writing a 0 to a field that needs to have 1 written to it always (register select) – found after lab closed – will have to test tomorrow § Outlook pretty bleak – Bruce and the TAs can’t figure it out, other groups don’t have this problem § Range of reception rather small o Other software stuff § More or less put on hold until radio link solved § If radio not solved soon, may have to disconnect it and just connect a wire between the UARTS, pretend it was the radio link § Changed power down code to start up the debounce state machine in the pushed state – make sure same button not sent twice Ø Friday 4/23 o Changed that UCSRC thing – and it fixed the problem § It was interpreting the parity bit as the stop bit, and the data byte’s odd parity was 0, while all the synchronization bytes were 1 § Shortened the synchronization to an acceptable level o Found errors in the data byte decoding – was active high instead of active low o IT’S ALIVE § MWAHAHAHAHAHAHAHA o Made all on, all off, 1, 2, 3, 4 buttons work individually o Added speed and mode control § Modified function of other buttons to change the active set of outlets, instead of the port directly § Started coming up with different modes – need a few more o Timing of blinking seems non-constant § Sometimes it won’t be on for long enough, or won’t be off for long enough § Seems random, and doesn’t occur very often – hard to capture on the scope or find a cause o Sampled microcontroller probably won’t arrive before the project is due o Sampled voltage regulators won’t come until later in the week – being shipped from the Philippines – LM340 still works, but draws a little more current that desired § Considered disabling the transmitter completely (cutting off Vcc) when powered down to save the 100μA, but decided that’s getting excessive § Considered using the new voltage regulator to indicate when the battery is dead, since if the battery is really dead, the microcontroller won’t power up enough to indicate that · New part won’t be here soon enough to test though · Another analog circuit that needs tuning · Not worth the trouble – nothing happens, try a new battery o Started working on the webpage § Haven’t done one in a few years § Figured out FrontPage again (new version) § Made a basic template, started filling some silly things in § Reworked block diagram slightly Ø Saturday 4/24 o More work on the webpage o Cropped and resized some pictures to include in report Ø Sunday 4/25 o Investigated alternate antennas § Couldn’t come up with any better designs for homebuilt ones, other than putting the ¼ wavelength wire perpendicular to a ground plane § Conditions in lab would probably adversely affect reception, but other groups have seemed to have better luck with range § Purchasing tuned antennas cost ~$10 each Ø Monday 4/26 o Decided to make the transmitter run at 9V to get more power out § Hooked its Vcc up to the battery directly, without a regulator § Apparently, it needs the input to be Gnd-Vcc, not to 5V § Tried a few circuits, decided on a rail-to-rail op-amp with gain 2 · Tried a few op-amps, but went with LMC7111 · It had lowest quiescent current, in a small package · However, it had a really slow slew rate, so the signal out was very sloped – thought it might be a problem, surely can’t run UART faster · Looked for non-inverting Schmitt triggers, but couldn’t find any in lab that would run up to 9V… it works anyway though § Transmission range with a fresh battery did increase slightly – yay o Tried putting a ground plane below the transmitter antenna – no noticeable effect Ø Wednesday 4/28 o Tried more antenna shapes, but nothing seemed better than the straight 17cm wire § Helical was very bad, despite the luck other groups were having § Sometimes putting an alligator clip on in a big loop helped § Sometimes touching the metal and using your body as a tuned element helped § Decided what we have now is good enough – works most of the way across the lab o More work on the website § Fixed up schematics to be consistent with final circuitry § Wrote stuff for the intro and high level design § Started writing hardware design o No word on the sampled ATMega32L-8PI chips – probably won’t come in time o Analog Devices voltage regulators shipped overseas last Friday, should arrive this Friday Ø Thursday 4/29 o Took more pictures of the project, and a video o Edited the video to smoothly work as an infinite loop o Wrote a lot of text for the website, and finished the formatting o Got the website ready for demo Ø Friday 4/30 o Demo-ed § Went well, as far as we could tell § Everything worked as expected o After demo, the voltage regulators from analog devices showed up Ø Monday 5/3 o Tested new voltage regulators o Ripped apart transmitter power supply, reconstructed it with new regulator § Used ADP3367 – SOIC-8, so used a PCB Prof. Land had § Has a lot more features, but decided not to design for them this late § Dropped quiescent current from 5.1mA to 62μA § Battery will now last nearly a year, instead of less than a week o Updated website slightly o Done… for now
|
|