Archive for February, 2017

Visibility regained

February 27, 2017

So, in the past I’ve been a proponent of “nope, I’m grandfathered in” as a response to why my car or my house have certain features.  The car I most recently adopted has a third brake light (or center brake light, or as a big faceless company calls it: the CHMSL, center high mounted stop lamp) that was added by a previous owner, and I kinda like it.  I’ve talked with people and even though it doesn’t legally need to have it I would feel more comfortable having one (most of them don’t know that older cars didn’t have one).  That being said the one I have right now obscures my visibility in a major way.

just hanging out there

This appears to be a standard aftermarket third brake light that would have been available for purchase to retrofit on your own car (maybe from some place like JC Whitney).  The color does not quite match the rest of the car but it’s perfectly acceptable.

actually mounted fairly well

I’m freeeee!

Even if I was ok with the location the part has seriously started to degrade.  The red plastic lens is slightly warped and the white plastic is absolutely crumbling.

dissected, that white plastic is the same crumbly crap the caps I replaced were made of

My fix is to use a 12v strip of red LEDs and a piece of aluminum c-channel to mount the LEDs pointing in the right direction and make it at least a bit directional.  I chose to mount this on the gate itself because that had a surface that could be easily mounted to.  My weapon of choice for this has been VHB tape because I hesitate to drill a bunch of holes into this car just yet.

replacement plan

I mounted the light to the gate and adhered it with zip ties, tape, and crimp connections.  This is entirely modular and does not require hauling the soldering iron out to the car to make part changes (boy do I have stories about doing that in the past).

VHB, for when you don’t want to break out the drill

I had a look side-by-side and they each put out about the same lumens but the original lamp is probably better lensed.  This light is not very visible in the day time, but it is perfectly acceptable at night.

I swear it looks plenty good at night, and even visible in the day too

The home page for this project is here, it has a link to the album of pictures.

Advertisements

I need my power back

February 27, 2017

Well, in a previous mod I removed the cigarette lighter and replaced it with a much more useful dual-USB port and voltmeter device.  I still maintain that this is a better use of center console space than the cigarette lighter, but now I really am lacking 12V stuff in the passenger compartment.  So much stuff you can buy at truck stops or gas stations plug into a cigarette lighter that it would be a major handicap not having one.  That being said I still don’t like that standard for connector so I picked a different one.  I particularly like the Anderson Powerpole connector standard(s).  They’re modular, expandable, and high-current.  I have a buddy that has done this, so I’m blatantly copying him because it has been really useful to have an inverter, ham radio, or whatever connected to it.  He saw me doing this and jokingly asked “Exactly how I did it? with no fuse?” and to be honest that’s what I was planning, but, well, the fuse holder isn’t that bad to install.

un-switched, straight from the battery (although I put a fuse)

I used the aftermarket gauge wiring to pull the power wire into the engine compartment.  The path to the battery was along the harness but I didn’t put an extraordinary effort to make the wire neat because it was cold out.

The routing’s kinda… obvious

In the passenger compartment I ran the wire behind the center console over the transmission hump and up under the radio.  This shelf is actually pretty perfect to have it resting on and the cigarette lighter adapter I made is in the glove compartment now (for compatibility reasons).

Anderson powerpole connector and cigarette lighter adapter

The home page for this project is here, it has a link to the album of pictures.

End caps for the wagon luggage cover

February 27, 2017

I was lucky enough to get a functioning and color correct luggage cover with my wagon.  I did notice, however, that the plastic caps on the ends of the bar that you pull were crumbling into dust.

old and busted

I suspect this has to do with a combination of UV and heat damage over 33 years.  I figured that the quickest way to replace them would be with heatshrink so I ended up putting four layers of the same size on the metal bar and I think it works well.  There’s a cushion so as not to scratch the plastic when extended and it looks better than a bare metal bar.  Another quick fix.

new hotness (I apologize for the quality)

The home page for this project is here, it has a link to the album of pictures.

Keys aplenty

February 27, 2017

I am coming to terms with the fact that I got three keys with this car.  I don’t like it, but there’s not a ton I can do about it right now.  I have one key for the ignition, one key for the doors and hatch, and one key for the locking gas cap (aftermarket, I think).  I plan to remove that, but for now it remains.  I found out that this car also has a lock on the ‘super secret compartment’ below the load floor that holds the jack and spare tire.  This lock is a regular cam lock but it fits my doors and hatch key.  It’s a shame that before I bought the car someone broke the casting on the lock.  If I’m honest I don’t even lock the car let alone the glove box or other interior parts.

Broken lock (my spare gas cap key can be seen above it, the original is round and says ‘gas’)

I removed the broken lock and don’t have any plans to replace it.  If I do it would be nice if it were also an old GM lock cylinder that I could get keyed to my car (I don’t want yet a fourth key!).  When I found out I had GM locks and ignition cylinders I was happy that I would be able to get a key cut locally (not another instance of ‘oh, we don’t carry AMC anymore’) but after I did there was a slight dilema.  The spare keys I got were both rectangular which made figuring out which was for the ignition and which was for the door a bit of trial and error.  The other problem is they didn’t say AMC.

blank, original, AMC copy, generic copy

I rather like my keys that show off the car brand so I took a peek on ebay and got four blanks (two round, two square) for just a hair over $11.  I then got one set cut for $2 a cut at the local hardware store and that was that.  I have retained a blank of each because I’m hoping to be able to find a locksmith to make me two new keys from scratch, without copying the old ones, just measuring them and cutting the new ones to the original specification.  This may sound un-necessary but the keys I have are a bit worn and I’d like a gold standard original.  In the mean time I will hold on to the blanks, and have given the generics to my dad for offsite backup.

The home page for this project is here, it has a link to the album of pictures.

When it rains, it pours (inside)

February 27, 2017

One of the last things I noticed on my initial trip home was that I had a small leak at the top of the A-pillar trim.  I noticed this because I had a drip onto my left leg (interesting how much this car tapers up as a trapezoid).  I took the trim off one night and had a loot around the windshield to find the potential culprit.

drip, drip

What I found was consistent spots with surface rust around the lip where the body meets the windshield sealant.  The spots themselves weren’t rust, but they were carried by the water and deposited on the surface for me to see.  I’m not sure if this is the original windshield and the original sealant but some of it has become hard and de-laminated from the body.  I know some was added because it’s not done very well and it covers the windshield clips gluing them to the car.

grody…

looks like the original stuff is still in there and some additional goop

I took off the stainless trim to clean out the old dirt, leaves, and shitty sealant before adding some of my own on top.  One day I’m sure I will break the windshield and then I’ll make sure it’s cleaned out well before applying the new sealant, but for now I’m just going to be adding my own.

WEAR GLOVES! (I didn’t)

The stuff I got is mean, it’s sticky as hell and even claims to be able to be applied in the wet.  I think I bought two tubes and ended up using half of one (better to not have to go back out) but it was worth it.  I was a little hesitant at re-installing all the windshield clips that were broken but they weren’t that broken and I ordered some new ones from ebay so when they come in I’ll reinstall the trim with those.

my new layer

Lucky for me about two hours after I get it all back together the sky absolutely erupts in a severe thunderstorm as the perfect way to check my work.  Not. A. Drop. I put the trim back and all is well now with the windshield.  Another little quirk fixed.

The home page for this project is here, it has a link to the album of pictures.

Begone old broken fog lights

February 20, 2017

 

This car came with very little aftermarket stuff, the most apparent are the fog lights.  There are two things I don’t like about them: the position, and the functionality.  I think they should be lower, like right below the bumper.  It would also be nice if they worked.  Putting them below the bumper would hang these particular lights a little low, however, losing me that valuable ground clearance I crave.  To get these off I had to remove the grill:

Seven screws to remove the grill (center bottom is longest and top two are flanged)

You will see on my fender there is some window screen material, I really like this as it keeps the radiator from getting clogged with leaves and crap.  The wires for the lights were run around an existing wiring harness and I had to remove the grill to get them unplugged.  Now we can have a look at the bulbs:

Rust

Rust inside the reflector

Holy shit, rust flakes galore

So, those are going away.  I could theoretically sandblast and paint them, but why? I don’t really like them very much.  These brackets, however…

really god damn sturdy brackets

I feel like I can re-use these for my under-bumper fog light.  This is the sort of custom work I like to see on a vehicle.  Now I have a cable coming out near the radiator that is controlled by a switch in the dash.  That is perfect for my new fog light.

Double bullet connector

Switch, actually works

That’s that! or so I thought.  While re-assembling the grill I broke off a bit.  I decided that since I didn’t have JB weld that some VHB and a chunk of aluminum angle would hold that tight enough.

Apart

Together

There, that ends my removal of the old, broken, and very rusty fog lights.  The new one is planned to be a yellow LED strip on a bracket along the bottom of the bumper.

The home page for this project is here, it has a link to the album of pictures.

Who the hell smokes these days?

February 20, 2017

I have a cigarette lighter in my new car, but I don’t smoke.  I know, that has become the standard 12v connector in cars these days, but I’m not a big fan.  I could plug in a dual-USB charger but then I have to worry about it falling out and I’d rather have something more permanent in my car.  I decided to replace the cigarette lighter socket with a dual-USB charger and voltmeter from Amazon.

Screws (or nuts) to be removed are indicated here

Disassembly was not hard once you knew where to look, everything was phillips screws and isn’t it wonderful to not have little metal tabs to break, or plastic plugs to have to dig out?.  The “gotcha” with this removal is that the radio dials are screwed to the front panel and have to be removed.

The radio knobs have inner and outer threaded nipples on them, it’s really strange, as if the radio was designed with slimmer shafts and then they threaded thicker ones on it (left without nipple, right has it on)

I had a look at the cigarette lighter socket and it’s beautiful.  Not a scratch, no corrosion, pristine condition.  I don’t know if this is new or original, but I couldn’t throw it out.  It’s in a bin of 12v parts now.

Like new

With that out I had to make the whole a bit bigger.  This would have been a job for a step drill but I didn’t have one big enough.  I used a dremel and grinding wheel to very carefully open up the circle.  The wires going to the lighter socket were very small so I made an extension harness (it needed to adapt from the bullet (screw!) on the old positive terminal to the spade anyway).

Little jumper that makes pulling the control panel easier in the future (I may put a switch in this in the future, it’s on accessory power right now)

This is the part where I get to say “assembly is the reverse of removal” and be done with it.  I’m not sure this is of the highest quality, and it may not charge my phones as fast as I would like but I’ll see how well it does.  If there’s an issue there are many options to choose from, but I will have to sacrifice the volt meter and get another one somewhere else.

Installed and working

There you go, my first upgrade to this wonderful new car! Stay tuned for more fixes and tweaks coming up.

The home page for this project is here, it has a link to the album of pictures.

My new car!

February 20, 2017

New Car!

I bought a new car.  This car has (or can have) just about everything I want in a vehicle.  After working in the automotive industry since I got out of college I have become intimately familiar with the inner-workings of modern (and as of yet unreleased) vehicles.  I can personally attest to not liking them at all.  I like the cooled seats and heated steering wheel in the current production cars I have driven, and have never had them on a vehicle I owned.  I may be able to aftermarket them in, but I haven’t tried yet.  The things I like that I have had in my vehicles are: compass, bluetooth and aux input stereo, voltage meter, MPG meter, trip meter, I’m sure I’m forgetting things here but you get used to conveniences like that.  The things I want in a vehicle are very specific: 4wd, hitch, small (smaller than my 2000 explorer), very small A-pillars, and an always-on cigarette lighter.  The A-pillars in some modern cars are nearly a foot wide these days! They hold so many air bags… that wouldn’t need to deploy if I could see the road they’re blocking.  When my phone is dead and I go in to the store I should be able to come back and it has been charging (yes, I know it could drain my battery, but it’s my car so fuck you I do what I want).

It rides nice and high

The vehicle I have chosen to build out is a beautiful 1984 AMC Eagle wagon.  This car uses the legendary AMC straight-six engine that lived all the way through the mid nineties in Jeeps and is basically indestructible.  I wanted the wagon because it’s just cooler than those Jeep Cherokees, you don’t see them around basically at all and they’re nearly as capable.  The car I bought has been re-painted, sat for some time, had a strange third tail light installed, aftermarket fog lights, an exhaust leak, a broken driver’s seat belt buckle, and a bunch of other little things.  It did just get a new battery, four new tires, and a four-wheel alignment a month before I bought it.  There are some problems to be sure, but overall this car has been pretty well taken care of and I intend to do the same.

First repair

On the drive home I had a couple problems, first of which was that the car would have trouble with stalling when going into gear from park or neutral.  I gave it some extra gas and was able to get it to move, but this seemed like an issue that needed addressing.  When we opened the hood Matt was able to track the problem to some old cracked and broken hoses going to the carb.  I ave indicated the hoses here on this diagram:

Replaced hoses and clamps marked in red

 We popped by a convenient Advance Auto Parts and picked up a few feet of 3/8″ fuel line (which was what was already there and cracked).  We also got some nice clamps to replace the spring clamps that were on there and a pain to get off.  There was also this other… thing that broke off.  The rivets holding it to the intake seem to have sheared right off, so I reattached it with some gorilla tape and we were on our way again.

Under the tape is a vacuum actuator, if you know what it is please comment so I can read up on it

By the time we were done repairing all this stuff it was dark so I had to try the headlights.  The car was doing as woody said: “Reach for the skyyyyy”.  Not all that useful a position for headlights to be in.  A few shots with the Yankee and they were aimed down enough to drive by.  This lasted until we hit the park-n-ride at exit 11 on I75 in Michigan, after that for the next mile whenever I got the car above about 35 it would start to shake to the point where it was so violent at 45 I felt I had to get off the freeway and take a look.  All I did was let the car sit for a few minutes and drove it again, it was fine for the entire rest of the trip home after that.  The best explanation for that problem came from that week’s episode of Car Talk: Carburetor icing.  I will have to become familiar with these once common engine issues because the mechanics behind that were news to me.
I have plenty of entries in this series planned (and a few I’m going to write immediately after this one) so you can now keep up to date on the adventures of trying to daily-drive a 33 year old car.

Future mods/repairs:

Cigarette lighter to usb ports/voltmeter

Fog light removal

Windshield leak seal

Key replacement

Wagon cover end caps

Always-on 12v power

Third tail light upgrade

Bling

LED Headlights

Thermal radiator cap

LED marker lights

Electronic flashers for the LED turn signals

Vacuum actuator repair

LED License plate light

Replaced fuses with breakers

License plate holder refurb

Reinstall bumper trim

LED dome light

hatch struts (strengthen/source replacement hinges first)

speaker grille

speaker replacement

seat belt buckle

compass

aux/bluetooth

rear view camera

hood release cable

phone mount

always-on lighter power  override switch

oil/fluid change and filter replacement (not Fram, maybe purolator pureone or wix)

fog light install

Door latch repair

fix fuel sender/gauge wiring

carb rebuild

Ham radio

Ham radio (take two)

Diagnostic harness

hose cleanup

brush guard

weatherstripping (everywhere, but mostly the trunk)

winch

hitch

Valve Cover upgrade

tachometer

power windows

power seats

cruise control

rear window wiper/washer

front window washers?

rocker panel/rust remediation

make mirror controls more responsive

remote power locks

Pictures: here

Star Trek control panel

February 5, 2017

This is one of those things that starts out as ridiculous but just might work.  We’re putting in a door at our hackerspace, a pocket door, so obviously it has to be pneumatic.  I was asked how to control this door, and I had one answer: Star Trek Electronic Door Chime Think Geek wants $30, Ebay wants $28, the cheapest is Amazon at $25 and free shipping.  I ordered one right away with the intention of converting it for use as our door controller.

looks unmolested, doesn’t it?

I knew I would have to do three things:

  1. make the sounds triggerable on command
  2. take the inputs from the button and switch separate from their original use
  3. control that LED
  4. (optional) do something cool with that translucent bit at the top, maybe an RGB LED?

Let’s investigate the guts.

brb learning kicad

Unfortunately I did not take a picture before tearing into it, so here’s my recreation.  Top left, board with a single LED.  Below that is a board with a single membrane switch and that passes through the LED wires.  To the far left are two PIR sensors.  Out the bottom is the connection to the battery box. The right side has the speaker and volume switch.  The top right has the front slider switch.  The middle of the board has the switch to select which PIR sensor will activate the sound.

I didn’t really go into this with a plan, but step by step I made this sound board sing and dance.  The first thing was to pin out the PIR sensors:

didn’t use their own copper traces….

PIR sensors:
s1=blue=common
d1=orange=normally open (3.61v)
g1=green=normally closed (0v)
s2=white=common
d2=purple=normally open (3.61v)
g2=grey=normally closed (0v)

That’s that.  I found that I could replace one with a microswitch and activate the circuit, perfect! I had to tweak the timings once I got it hooked into the microcontroller but I could control them digitally, good enough!

not PIR, this is the new microswitch

Next was the front switch board:

switch board
7=0v
up=woosh
7-8
center=none
7-9
bottom=red alert
7-10

That’s fortunate, there’s one common and three different things to be pulled down in succession.  I decided to use the trick of defining a pin as an input to make it floating, which worked great.  For inputs I used three separate pins with pullups to detect which was being pulled low.

Last was the LED and button boards:

LED board
1=led positive (4.4v, floating battery)
2=led ground (current limiting resistor inline, switched)
resistor removed and shorted over

button board
1 – 6
2 – 3
4 – 5 button
5=4.38v (floating input)
4=0v

The decode here is that the LED gets tied high, there is a SMT resistor on the main board, and the ground is switched.  The button is on pin 5 and pin 4 is ground, so all I have to do is pull that low to activate it with a microcontroller.  I really don’t like how that LED is wired so I removed the resistor on the board, jumpered over it, and wired the switched pin (3 on the board) to an input on the microcontroller (pulled up).  I then wired the LED to ground and one of my GPIO through a 100 ohm resistor I added.  The button also got wired to me as an input.

Here’s the story so far:

Outputs:

  1. LED
  2. simulate front switch
  3. simulate front button
  4. simulate PIR sensor

Inputs:

  1. sound board output for LED
  2. front switch
  3. front button
  4. extra button from me (to trigger as if it was a PIR sensor)

power circuit

In this configuration I could essentially man-in-the-middle the entire board, but I had one limitation.  The red alert is supposed to be a burglar alarm for a cubicle (just like the hail is supposed to be a doorbell) and thus cannot be stopped mid cycle.  I decided the best way to fix this was to wire a couple of transistors so that I could drop power to the whole board and thus kill any sound mid-play.  This is a very crude solution, but seeing as my music box is literally 2 epoxy blob chips, I’m going to just call this good enough as well.

The jumper near the label R19 is mine (for that resistor I removed) and the pin the PIR chip out put is actually pin 2, right under that white dot

Now I have even more control over the board than I did to start with, I have written code that would simulate an unmodified board (no PIR though) and augment it with the ability to interrupt the sound being played.  If you really really wanted to you could take the PIR sensor in as analog and output it as PWM and maybe it would work.  I didn’t bother because this device has 2 PIR sensors and a switch on the back to choose between left, right, or both to activate the sound.  If you want a PIR sensor, just leave one in and connect the arduino in place of the other.  You can even switch between them to preserve as much original functionality as possible.

as wired in final assemble

Somewhere along the line I thought I broke my code for simulating the PIR sensor (spoiler: don’t #define the same variable twice and expect it to work).  My remedy for this was to look into the TM2291 chip connected to the horrorshow of capacitors and resistors.  This chip turned out to be a dedicated PIR sensor reader chip.  Most of you won’t have ever dealt with this because you but modules that have something that does this onboard, but this device had 2 PIR sensors MUXed into one driver chip… I did not want to decode that.  I found an example circuit and picked the pin I thought must be the output to the sound chip.  After I desoldered the chip and connected in place of it everything worked (no it didn’t. but it was around this time I found my code bug).  Now I could also be rid of that switch on the back of the PCB.

polarity marked, it’s important

With the switch desoldered I had room to just about fit my FTDI header out the back.  One important thing: the RAW and the Vin on the FTDI header are not as connected as you might think, which led to some head scratching from me.  Here is the final layout as I have it now.

kicad’s going slowly

The diode is so the batteries don’t get charged from the ftdi header (but it can still power the unit).  The switch at the top is mine for triggering things instead of the PIR (glued where the PIR was).  You can see the NPN/PNP circuit I mentioned before to kill power to the board (and the power for that coming from the FTDI input, not any other pin on the pro mini).  The LED has a new resistor, and the button boards now go to the pro mini.  The arduino has a bunch of control lines running to the original board, but the volume switch was left alone.  This literally shorts out a series resistor with the speaker, I didn’t think it was important to make that variable.  You can see how I now have central control of all the inputs and outputs, which was the plan all along.

removed parts (and all the shitty wire)

The code I think this will be running in production is the command based one I uploaded here.  It’s overly modularized, but it works well.  Another hint: 8Mhz does not divide equally to give close enough to 115200 baud for input, even though the output comes through readable.  That’s a fuckin’ pain to diagnose.  I used 9600 this one time, as you can see.  My functions:

WOOSH does exactly that, plays that sound.
ALERT does the same as WOOSH, except it will be left in alert mode so the LED will blink
HAIL plays the hail sound
NONE sets the virtual switch to no sound, but can be used to cancel the blinking without playing a sound
KILL kills the current playing audio
ON turns the LED on
OFF turns the LED off
PASS passes through the LED state from the board, useful in alert standby mode or to see the blinking while playing the red alert sound
BLINK sets the board to red alert mode, does not trigger sound, LED blinks slowly
SWITCH returns the state of the front switch (0, 1, or 2)

The button on the front and the new button on the side asynchronously send 3 or 4 out serial, but they are debounced and only do it once per press.

That square board is mounted 180* off, and I cut the post/glued in the speaker to accommodate it.  Completely un-needed.

That’s it, I’m done, it works.  I anticipate this (maybe two) being serially linked to an ESP8266 (it wants 4.5 to 5v power, but 3.3v serial is fine) which will run the solenoids, read pressures, and talk MQTT.  If I’m really hurting for pins I can make the second one respond to different commands, make it talk different numbers, and hook them in parallel with a couple diodes, but that’s silly…

the code is here.

the rest of the pictures are here.

mini-sucker (gravity sucker)

February 5, 2017

This past weekend (this post has been in the queue for a while…) there was the Ferndale Pig and Whiskey Festival.  I spend a lot of time at i3Detroit and was convinced to help out at this event. We have a large device aptly named the moneysucker as it consists mostly of a water cooler bottle, a shop-vac and a long tube.  That particular one is triggered by a non-contact mains switch and has a spiral of lights running up the tube.  Over the years that has been made sturdier and nicer, but now it’s hard to move and impossible to shrink without essentially breaking it and rebuilding it after.  The one I built is a sucker in name only; it is a water cooler jug, an arduino, a neopixel strip, and an IR presence sensor.

The first version I built used an arduino pro mini, but that died just as we were supposed to leave for the event.  My best guess is the little SOT23-5 linear regulator on the chinese knock-off board was not up to the task of stepping 12 volts down to 5 (even though I was not powering anything but the ir sensor and arduino with it).  The fix was to replace it with a full-size real-deal arduino, no expense was spared (although it wasn’t my expense).  The IR sensor had the LEDs pointed straight out, and I decided that I’d rather have them mounted at a right angle to make the board mounting easier.  That was a bit of a mistake.  Those LEDs are very sensitive.  All the sensor is is a comparator and a potentiometer to set the bias, so the level it triggers at can be set (theoretically a distance).  When I unmounted the LEDs the alignment became somewhat of an issue.  If I were to do it again I would convert the sensor to a beam break sensor, and heatshrink around the 5mm LED body to keep directionality.  This would invert my signal, but the pin change interrupt does not care.  The pin change interrupt is indifferent to your small mortal worries.

The code was a modified version of the adafruit strandtest.ino example expanded to the length of strip I was using.  I chose a default state I liked (the rainbow and rainbowCycle subroutines) and one I liked for the instance of having money inserted (theaterChase, white) and pulled out the rest of the calls.  The interrupt is triggered on a pin state change  so no mater what I use for a sensor (reflective, beam break, etc…) it will trigger a blinking state.  The theaterChase subroutine was also tweaked to be more intense and shorter.  The delay passed in the subroutine call was shortened from 50 to 20,  and the number of cycles was shortened to 3 instead of 10.

edit: now that I know someone actually plans to use my code I’ll reveal a secret.  There’s a bug.  It’s not major, and it only really shows up when you’re playing with it and not depositing money, but of course that’s when you’re showing off your new thing and you look stupid when it seems to immediately break.  If you fingerbang the jug fast enough then it will lock up in less than 20 seconds of doing this.  I think it’s because I used interrupts and while some people may sit smugly and say that’s the ‘right solution’ to this coding problem you need more knowledge about code than I do to use them properly.  If this were all my code it would be non-blocking without interrupts and check the pin state between each push of color changes and everything would be fine.

the code is here.

the rest of the pictures are here.