Surviving Your Borderline Ex Girlfriend

After spending a few months in recovery from the damage of my Borderline ex girlfriend I’ve come to realize my last blog is a bit long winded in those seeking recovery. I’ve decided to write another blog to share my experiences in recovering from the damage my ex, Crystal Kazenske left in her wake.

I was involved with my ex for a little over a year before I finally decided to cut ties. One day she unceremoniously and hurtfully left me. We never had any conflict in our relationship that would warrant such treatment. I was always told by her that I was “the one”, her soulmate. I treated our relationship as such. This is the first woman I’ve been with that I’d consider spending the rest of my life with. I was lead up right to the last minute with her affection and love. Out of the blue, she came home two days before we were going to throw a big birthday for her children accusing me of not caring about her children. She immediately left after her accusations and I was left stunned, wondering what the heck just happened. She was like another person, completely disassociated and careless. She showed no empathy or compassion for what she had done. I never once got angry or raised my voice to her. I pleaded for an explanation. At first she placed all of the blame on me, saying she didn’t like me because I was “on my phone too much”, that I didn’t “put enough effort into our relationship”, that I didn’t like her children. None of that made sense since I treated her and her children like family. The reasons were endless and didn’t make sense. Eventually, after proving to her that all of her concerns were minuscule and had been addressed, I was simply met with “I don’t know.” She began to display bizarre behavior, as if she was on drugs. Her personality was way off. Everything she said was contradictory. All in all she was a very different person. I thought I was going crazy, as if I was the only person that was witnessing what was going on. Some of her bizarre behavior was witnessed by a mutual friend away from me, at least that was mildly validating.

Despite the fact that I worked hard in my career to provide for this family I thought was in front of me, I had learned she left me for a heroin addict that she claimed is her best friend and trying to help “kick a habit.” Myself and others suspected she was doing heroin with this person, based on the bizarre changes in her appearance and personality. Because she has children, everyone had become concerned about their well being. I had addressed the issue to her mother and the father of her children. Oddly enough, in our relationship she had made the kids father out to be this abusive alcoholic that she had to remove herself and her children from. I had a very good conversation with him and he told me what had really happened in their relationship, which turned out to be a total lie on her part. Her mother, on the other hand, is a shining example as to why my ex is the way she is. My concerns were met with total denial, I was accused of being combative and crazy. Her mother condoned and justified my ex’s abusive behavior. As they say, the fruit doesn’t fall short from the tree. At least now I completely understand why my ex is such a horrible human being.

I was confused and badly hurt by what had happened. I was left with no closure or explanation. The rest of my previous relationships ended in a healthy manner with some sort of reason, even if we didn’t agree with them. I’m happy to say that I’m still good friends with many of my ex’s. I knew something was wrong. Recognizing my ex’s low self esteem, I dove in to try to fix the damage with to no avail. It’s hard to understand how people can sleep at night knowing they destroyed the one person that only wanted to give them the world.

That said, I want to directly address some things to those suffering from the damage of a Borderline:

  1. It’s not your fault. You did nothing wrong. It won’t be obvious at the time, but their issues have nothing to do with you. The reasons, if any, will be juvenile and never previously discussed as if you were able to read their mind. You are dealing with an individual who never emotionally matured beyond their early childhood years. They are only capable of acting like a child.
  2. The way my ex treated me is the most leathal way a Borderline can emotionally inflict their injuries. The sabotage will come out of nowhere. There’s nothing you can do to prepare for it. No matter what, you will be the victim of their self-sabotage.
  3. Get help. Despite the fact that I thought I was a strong person before my ex came along, she damaged me to my core. Your friends can only do so much for you. Lean on them but don’t depend on them to heal you, they’re not properly equipped. Seeing a therapist has been the most amazing experience for healing.
  4. Run far far away. In the most literal sense, this person is damaged goods. You cannot fix them. You’ve seen horribly abused animals in the shelter. They bite you when you try to feed them or comfort them. They attack if you get close. No sane, healthy person wants that in their life. This person at some time has been abused, and they’re much like the broken animals in the shelter. It’s inevitable they will turn on you.
  5. Alcohol will not help. In fact, this experience for the most part has lead me to abstain from drinking until I was able to heal well enough to cope with my thoughts and emotions. Drinking will only make the damage feel worse.
  6. Don’t try to rationalize the irrational. You know yourself. This person doesn’t know who they are beyond a vague notion of their false self. Nothing you say or do will be met with any understanding, especially when trying to address concerns with their equally damaged parents. Ask me how I know.
  7. This isn’t about you. This is how this person treats everyone. They will use you until they no longer have a use for you. Until they want to get rid of you, they will act exactly has how they expect you want them to.
  8. Inform yourself. Many other people have been in your shoes. Read up on the subject. Read blogs and forum posts made by people with this disorder. Seeing into their world will shed light as to why your ex lives in a different reality. I’ll post some links at the end of this blog.
  9. There will be a rebound relationship. My ex already had hers lined up when we were together. It was definitely an unpleasant experience when she rubbed it in my face by telling me she was doing things with him and her children that we had previously planned to do together. Again, this isn’t about you. If anything, feel sorry for the next chump because she will do to him what she did to you. It’s a never ending cycle for them. Each affair will end worse than the last. Be sure of it.
  10. Be careful when your ex, her friends, or family try to gaslight you. In my experience with my ex, her mother did more of this than my ex did. Don’t allow them to shift the blame onto you. While you may be hurt and vulnerable, be extra vigilant and don’t allow the blame of their mental issues to be shifted onto you.
  11. LET GO! Yes, this person may have been the most important part of your life and you saw a future. It’s hard to imagine how you can be treated this way. You’ve been loved by this person like you’ve never been loved before. This is all by design, this is how they need to make you feel in order for the sabotage to work. In order to heal you have to see the situation exactly as it is, just an act. You were manipulated, you were used, and you were deliberately hurt. There is nothing you can do about it. Move on. Life is beautiful. While you may not believe it now, you deserve much better.

One of the resources I would like to share that were insurmountable in my healing process comes from a series of writings on the subject of individuals involved with borderlines, written by Shari Schreiber. Halfway down in her articles are writings on borderline individuals that will resonate with your own experiences when you read them. Click here to read, or I’d suggest starting with this article.

Posted in Cars | Comments Off

The Harsh Reality Of Being In A Relationship With A Borderline: A Warning To My Brothers Out There

Over the eight years I’ve been writing blogs in this space I never thought I’d be sharing with the world my most interpersonal, intimate self. Having recently escaped from the prison that is being in a relationship with a Quiet Borderline I felt it was appropriate to momentarily deviate from cars and electronics to share the knowledge I’ve gained in this experience, hoping to help others make sense of their relationships with Quiet Borderline people. You’ve probably come across this blog already knowing what qualifies a person as having Borderline Personality Disorder, or you did a Google search on my ex.

In this blog I’m going to share the story of my entire relationship with a Quiet Borderline and the lessons I’ve learned from it. I’m going to use real names and real places. I chose to do this because down the line I feel it may help specific people who are looking for answers in their own lives. I’m going to be entirely honest about our relationship and what lead to its demise. The purpose of this blog isn’t to victimize myself, rather share the entire story in all honesty to show others how not to treat people from both sides. I too made my own mistakes in this relationship and my story isn’t complete unless it’s shared in its entirety. I’ve often joked around that I could write a book with this experience. By the time you finish reading this story you’ll understand what I’m talking about.

The Story: Our Relationshp

I met Crystal Kazenske at Ray Frey Auto Center sometime late 2014. I wasn’t allowed by my company to work on their service vehicles so I took it to Ray’s, mainly because my supervisors father was the manager there. Seemed reasonable enough to find a shop to have a vehicle worked on, right? Crystal worked the front counter at Ray’s shop. At the time I wasn’t really looking for anyone, being quite focused on pursuing my career as a pilot. Somehow Crystal caught my attention. Might have been her outgoing personality as she’d come sit next to me, full of life, explaining to me the work done and additional recommended work on my truck. I’d always see Crystal when I brought my truck in for periodic service and we’d always talk a little bit while I waited. One day I decided to be a bit flirty as I was leaving. Crystal told me my truck was due back soon for a brake job. I smiled and said “Good, that means I get to see you again soon!” The smile on her face showed my comment was well received.  About a month later, March 2015, I brought my truck back in to have the brakes done. I went in with the intention of asking Crystal on a date. Admittedly nervous, I walk into the office to hand her the keys to my truck. She’s not there. A little bummed, a little relieved from being nervous, my boss picks me up and takes me to work. Later that afternoon I get dropped off at the shop to pick up my truck. There she is, standing right outside the front door of the office. I approach her a little less nervous than when I dropped the truck off. She has the biggest smile on her face. Before I can even say anything she beats me to the punch. She tells me she wants to see me, I agree. She hands me a business card with her number on it and I leave the shop with the biggest smile on my face. In fact, I was so excited I left without paying my invoice at the shop and didn’t realize it until I got back to work. I was THAT excited.

I called Crystal the next day. While briefly getting to know each other at her work I knew she had two children, twins, her free nights were Wednesday and Thursday nights when the children were with their father, and she lived in Ramona. I called her on a Wednesday night a little later in the evening to let her get home and settle down. We talked for a bit and arranged a date at my watering hole down the street from her work, O’Briens Pub the following week. Our first date was pretty amazing. After spending some time over a beer getting to know each other I decided to take her out that night and show her some neat little date spots I know around San Diego. I’ll never forget taking her to a little known beach spot in La Jolla, looking at her as the sun was setting, and she immediately tells me “I have to pee!!!” Hop in the car knowing there was a Vons store near by with clean restrooms, I rush her to the bathroom. A woman needing a clean restroom will keep you on your feet at times. From there our night goes on until I finally had to drop her off at her van around 10PM so she can go home. We end our night with a nice kiss and I am the happiest man in the world. Everything seemed so perfect.

All of our dates were amazing. Crystal always had the biggest smile on her face and she was the most caring, loving woman I’d ever met. Whenever I took her on a date she’d just smile at me from across the table and put out both of her hands for me to hold. All of the time I thought to myself “how did I get so lucky to find a woman like this?”

Two weeks into dating, Crystal told me it would be some time before I met her children. I agreed with the notion, telling her that if I get involved with her kids we would have to agree to be in this for the long term. I do not want to walk in and out of a child’s life. After our second big date Crystal stayed at my house because she didn’t want to go home. We agreed we’d hold off on intimacy, but it was comforting having her at my side the entire night. As I drove her home the next morning she sent a message to the children’s father informing him to delay dropping the kids off until I left. He agreed. That didn’t happen, however. As I was dropping Crystal off at her place Daniel showed up with the children. I was in a spot where I wasn’t seen and I would have understood if Crystal wanted me to just leave. Instead she looked at me and asked “Would you like to meet my family?” With a big smile on my face I replied “Yes!” So just like that, mere weeks into dating, I met Lucas and Olivia, the two most beautiful children in the entire world.

We agreed to be in a serious relationship shortly after that point. This is where the root of some of our conflicts began although it wasn’t apparent at the time. Crystal always described Daniel as an “asshole” and an alcoholic. Crystal said she left Daniel due to his alcoholism, stating that he chose alcohol over his family. She never had anything good to say about him. When Crystal informed Daniel that I was getting involved with the kids I was told by Crystal that he “wanted to have a talk with me.” It was presented in a way that suggested confrontation due to the way Crystal had always described Daniel’s personality.

Because our relationship was still young I didn’t get too carried away in getting heavily involved with the kids. I didn’t want to take precedence over their own father and as such I wanted to avoid conflict from him by not making him feel that way. When Crystal had to take the kids to urgent care I’d go with. We’d take them to the park, take little hikes around town, take them to the aquarium, and so on. Even though I wasn’t a significant part of their lives in the beginning, I was involved from the start.

Crystal and I spent her off nights together, Wednesdays and Thursdays. When we started dating she also had Daniel take the kids on Saturday nights. Because I wasn’t trying to step on Daniels feet and he hadn’t yet confronted me about being involved with his children, I always left Sunday mornings before or right after the kids got dropped off at Crystal’s. Looking back, that was a pretty fucked up gesture on my part. “Here’s this guy that mom’s involved with and he’s always leaving right as we get home on Sunday mornings.” But, I did still spend a significant amount of time with them when I’d come up occasionally on Saturday afternoons or if Crystal kept the kids because they were sick. Since Crystal never brought up any issues with it I assumed all was well with the time I was dividing between her and her children, despite leaving as they arrived on Sunday mornings.

We had a good, stable relationship. It was well balanced between our time together, time with her children, and our own personal time. I met a lot of Crystal’s family and spent a bit of time with them. Our own time together was spent going out to dinner and watching movies at home after work, cuddling together. Just unwinding after our work day. Saturday nights were our big date nights. I was content. I had a woman who said she loved me, who was always sending me little pictures expressing how she wished she knew me earlier, how she felt I was her soul mate, what I meant to her, how much she loved me, and so on. She was so affectionate and seemingly in tune with my own wants and needs, unlike any other woman. I showed equal affection to her. I was always doing things for her around her house, fixing her van when it was needed, taking her places and concerts she wanted to go to, and doing things for the children she’s always wanted to do but “couldn’t afford to.” I finally felt like I had “the one”. I loved her children to death. She was always supportive of my pursuit in becoming a career pilot. In fact, she got us involved with the San Diego Antique Aircraft Association. It felt amazing to finally have a partner who supported my life goals and wanted to be a part of it. And I supported her equally. The one thing we also agreed to, aside from a long term relationship for the sake of the children, is to always work out issues in our relationship. We loved each other enough that there was no issue too big or too small to handle.

Pay close attention to the previous paragraph. A lot of things I did for her and her children revolved around financial means. She’d always tell me things she wanted to do, and places she wanted to go, but was always held back from doing so because she “couldn’t afford it”. I was always there to provide the means to do what she wanted to do with us and/or the kids. Living in San Diego county it’s easy to understand that being a single mother of two children can be a financial struggle. But, this apparent struggle now becomes less apparent later on in the story.  

I was Crystal’s first relationship after she left Daniel three years ago. She had a much younger guy around in a friends with benefits situation before I came along.  I suspect the son of one of her old friends close to her age. Kind of weird. Regardless, after hearing about the dysfunction and abuse from all of Crystal’s prior relationships she would always tell me how having a good guy for once in her life made me the best boyfriend she’d ever had.

Crystal came from a colorful past of partying, drug and alcohol use, and multiple aborted pregnancies. None of that mattered to me. She claimed that she had cleaned up her act after she went through with having Lucas and Olivia. I had a ton of respect for that. I mean, she was the most caring, loving, most beautiful woman I’d ever met. And it did seem like she had come a long way since her past. One comment she made, however, is when she found out she was pregnant with Lucas and Olivia she made the remark about Daniel “I didn’t want to have kids with this asshole”. A little off-putting. I was recently asked by a friend, with all of the aborted pregnancies and the desire to not have children with Daniel, why did she have them then? Why was she even with him? According to Crystal, her mother wanted grandchildren and on that basis she decided to go through with it. This plays a big role later in the story.

Crystal’s father is an alcoholic. Her parents separated when she was 14. Due to Crystal feeling that her mother was too strict in her teenage years she moved to Wisconsin with her father for a few years while in high school. This is when the promiscuity and pregnancies started happening, her first pregnancy at the age of 15. This is also when the drug and alcohol abuse in her life started as well. Most of Crystal’s past relationships have (according to her) been with alcoholics, including Daniel.

Crystal doesn’t have many close friends. In fact, there’s only two I ever knew of and I had only met one of them. Starley moved in with Crystal for a short time after a divorce to get back on her feet. Starley was a good individual, seemed a little lost in life, but a kind person nonetheless. The only other close friend Crystal told me about was her “best” friend Sam, whom she said she had a falling out with right before our relationship. The only things Crystal ever said about Sam is how bad she treated her, all of the bad things she’s done, the bad person that she is, and that she’s a heroin addict. I didn’t think much about it at the time but this will come back to bite me in the ass later on. There were other random acquaintances of Crystal’s I had met along the way. Mostly people she deals with at her work as customers, or from prior employment. Nobody who would be considered a close friend. Looking back, Crystal really didn’t like going anywhere in Ramona in fear of running into people she didn’t want to see. There seemed to be a lot of those people. I don’t remember the exact reasons, however.

Crystal smokes weed. I used to, but my current career path doesn’t afford room for recreational substances. I took no issue with her doing it as long as it didn’t affect her ability to maintain our relationship or raise her children. When her friend Starley moved in with her is when a lot of that happened. I was there for most of it. Our relationship remained stable and she didn’t do it around the kids. I did notice that Crystal took a particular interest in the fact that Starley’s new boyfriend owned a dispensary in Ramona. That remark will become more relevant later in the story.

Crystal was pretty shy around my friends. She didn’t associate with them much when she was around, despite my friends trying to get her involved. I spent most of my time with her to keep her comfortable in those settings. All but one of my friends liked her. That one friend expressed concern about Crystal’s personality. When they first met they were both given some time together and I was told by my friend that Crystal introduced herself by saying “My children’s father chose alcohol over us” and that’s all she talked about. That left a bad taste in my friends mouth. Again, a sign I ignored at the time because I was focused on the better parts of our relationship.

Crystal did spend quite a bit of time complaining about her children’s father, about her boss at work, the customers at her work, her financial situation, and anything else she could find to complain about. She always portrayed herself as the victim in every circumstance. Of course, I always was there to comfort her.

Anytime Crystal had an issue with me she’d never directly address it. She’d bury it deep down inside and bring it up at a much later time. Her way of presenting those issues to me would be in the form of telling me how she complained to her coworker about me the previous week for something that I had done a few weeks prior. This made it exceedingly difficult to understand when she was upset because she would hide the issue and appear to be perfectly fine on the surface. I tried to work with her on bringing up issues as they arose in the moment so we can deal with them while they’re “fresh”. But she always struggled with doing so and would always bring them up at a much later time indirectly. Thankfully, I paid enough attention to her own wants and needs that these issues hardly ever arose and they were very minor issues. In the back of my mind, however, I always wondered to myself if she had a hard time bringing up the small things what’s going to happen when larger issues come up?

Crystal had problems dealing with her own issues as well. One of the customers at her work kept asking her out. Pretty persistent. She would always send me screen shots of his text messages. She’d keep asking me how to handle it. I thought to myself “is it really that hard to say “look, I have a boyfriend, take a hike””? I never told her what to do. I just told her how it would make me feel if she started hanging out with someone who was pursuing her and handle the issue as she sees fit. All of the screen shots she sent me with her responses were in the type window and not sent. I always wondered if she actually sent those messages, but I trusted that she did.

Crystal seemed to invest a lot in the advice her step brother, Kenny was giving her. Crystal loved to brag about me to her family. She talked about my car hobby, flying, and how I liked to tinker with electronic design projects. Crystal approached me one day expressing concern over something Kenny had said about me. Mind you, I’ve never met this guy before. Kenny told her to watch out for guys like me. People who like to tinker get bored easy and move on to something else. Basically what he was telling Crystal is that I’d eventually get bored with her and leave her. She was concerned about this. She truly thought I’d get bored of her and leave her. I assured her that would never happen. I thought to myself “does this guy really believe the bullshit that comes out of his mouth?” Looking at some of Crystal’s family members’ Facebook pages, it does seem that a few people in her family look up to this guy as some sort of philosophical prophet.

Looking back, all of the red flags were right there in front of me. Her quick falling in love, the immediate display of affection. Lack of friends, inability to connect with my friends, the constant complaining and victimization, inability to directly express minor concern, inability to solve her own simple conflicts, and expressing concern over issues that don’t exist. 

I went way out of my way to make sure Crystal was always happy. I put aside the car hobby to focus more of my finances on, and spend more time with her and her Children. Priorities in my life were changing. I was beginning to focus on having this family that was in front of me. That was most important to me. In order to have that family there were certain little things I had to sacrifice that didn’t bring anything to the table.

The month of December was the most difficult time in our relationship. While we were just dating, months prior, I had told Crystal that I was going to be in Colorado with family for Christmas. I wanted to give her a fair heads up months in advance I wasn’t going to be around for Christmas. I had two big work trips that month as well as my checkride for my Private Pilots License. My plate was full that month. I never lost focus on Crystal and I was really hoping she would be supportive of me with everything I had going on that month. I had managed to cancel a work trip to attend her company Christmas dinner because I knew how important that was to her. Because of the financial strain I had that month taking my pilot exams, and not being around for Christmas, I could only hope she would understand that month was going to be difficult for the both of us. She seemed to understand. This was the only month in our relationship where I was not around a lot of the time. I figured it shouldn’t be too difficult to work though since this isn’t the norm.

While on a work trip in the middle of December I was talking to Crystal on the phone after work. She told me she felt “neglected”. I tried to get her to elaborate on what she was talking about so I knew how to handle the issue but that’s all she could say. Personally I felt a little discredited. I mean, up to this point I had bent over backwards in my own life to always be there for her and her kids. I honestly didn’t know if I was doing anything wrong to make her feel this way. She made me feel like I was doing something wrong to make her feel this way. Because she couldn’t explain to me what was going on I was left to just guess.

Because she felt neglected and couldn’t explain why, I tried to think what was lacking in our relationship. I decided that it was time to make Lucas and Olivia the most significant part of our relationship. At the beginning of this year I began to spend Sundays with the kids. I was no longer leaving them. I knew it was time to step up to the plate and I did. Lucas and Olivia’s birthdays are at the end of February. This year Crystal was planning a big birthday for them. I was so excited to be a part of it. We spent some time planning everything that was going to happen, my role in making it happen, and how amazing it was going to be for them. A good friend of mine was having a going away party the same weekend and without thought I told him I couldn’t go because Lucas and Olivia’s birthday was the priority.

Two days before the big party I was trying to coordinate with Crystal the final details on what she needed me to do. All she responded with was “I’m stopping by your house real quick to talk to you.” Odd, but OK. Crystal stopped by my house and began to question me how I felt about her children. I mean, if me getting more involved in their lives the few months prior didn’t show that then what was I to say? I told her how much I loved her children, that I was always there for them, and how much more involved I was getting in their lives (she didn’t seem to pick up on that). But that didn’t seem to mean much to her. She already had the idea in her mind that they didn’t mean much to me and she left it that. All off this planning and excitement for Lucas and Olivia, and I was told I wasn’t wanted at their birthday. She felt it was best I go to my friends going away party that weekend. I was torn apart. I didn’t know what all of the sudden happened for her to act like this. I respected her wish and didn’t go. Instead, that day I flew the Archer down to Brown field and participated in helping children with Autism be our co-pilots for the day, flying them around San Diego. Looking back I should have gone, if just for Lucas and Olivia. It was confusing. I really didn’t know what was the right thing to do. I felt respecting Crystal’s wishes was best at the time.

After the Relationship: Continuing to Provide and the Push-Pull Dynamic of a Borderline’s Changing Identities

Up to this point there had been no diminishment of communication, affection, intimacy, or any other indication that something was wrong in our relationship. We never fought, never argued, and never had any large conflicts that would normally bring about the behavior that Crystal was starting to display. It was unceremonious and hurtful. It just didn’t make sense.

After Crystal’s last visit to my house expressing concern (rather an accusal) that I didn’t like her children I noticed her beginning to develop cognitive dissonance. She’d get these negative ideas in her mind about what was going on around her and hold those ideas to be true, regardless of the reality of the situation or contradicting evidence. This is when I began to notice her behavior becoming quite bizarre.

After nearly a year of establishing this relationship for her and her children it was all gone in an instant. I was left wondering what happened? Why did this happen? I asked Crystal what was going on. I always got mixed answers, first it was “I don’t know what I want” then it was “I’m fighting this battle and I don’t know what it is.” She also often said “I tried to quit smoking weed in our relationship, but I just couldn’t.” Ironic, considering I had no issue with her doing it as long as she didn’t lose herself in the process. Either way, she could not give me a straight answer as to why all of these bad things were happening. Any time I pleaded for an explanation I was often left with “I don’t know” as an answer.

Out of the clear blue sky she became cold. She was like another person, a robot, completely disassociated. She showed no empathy or compassion. I’ve been in similar situations to this in the past. In my experience this is an indication they’re with (or found) someone else and looking to find an excuse to get rid of you. I suspected that back when this was happening and quite frankly, it’s still a possibility. I asked Crystal if there was someone else and she insisted there wasn’t.

Come to find out later on while I was away on one of my work trips Crystal had gotten back in touch with her best friend Sam, the heroin addict. Crystal had gone to Sam to seek comfort in these issues she was having. I felt as if I seized to exist in Crystal’s mind. Instead of us working out whatever issues she was having she turned to her drug addict best friend to seek comfort. It was upsetting that Crystal was seeking life advice from someone who destroyed their own life with a heroin addiction. The more time she spent with Sam the further she pushed me away.

We still talked and still loved each other(according to her), but never saw each other. As the days progressed she started distancing herself more from me, only talking to me once a week. I heard from her only if she needed something from me or if her coworker wanted to get a beer with me. She didn’t really seem to care about me or my affairs. It was torture. How can this woman who said she loved me and convinced me I was her soul mate turn on me like this without explanation? I was still wondering what happened. I asked her if she still wanted to be in a relationship and she said no, but maybe her mind will change in the future. I was so lost at this moment. Still believing this was all of my fault I wondered to myself “what could I have possibly done wrong to have lead her to do this?” Since she expressed interest in continuing a relationship I was still committed to put 110% into her and her children.

One day out of the blue, Crystal told me her van needed new brakes. She complained that it had to be done immediately, she couldn’t afford it, and she didn’t know what to do. (Remember earlier when I mentioned our relationship revolved around financial means?) I told her don’t worry, I’ll buy her new brakes and take care of it for her. She directed me to El Cajon Toyota where she said a guy that worked there was giving her cost on parts. Sort of odd, this random guy is going out of his way to give cost to a walk-in customer on parts. What did she ever do for him to get this deal? My guess is she laid the “I can’t afford this and I don’t know what to do” bit on him as well. Continuing to show her how much her kids meant to me I told her I wanted them to help me do the brakes. She agreed. I spent the day with the kids, they helped me do the brakes on her van and we had a lot of fun. After that they wanted to be with me the whole day. We went to lunch, went to play at the park, came home and watched movies. I went home after they went to bed. That day Crystal wanted to have nothing to do with me. Very little conversation, little interaction. But I had fun with the kids that entire day and I continued to show her what her kids meant to me, if there was still any doubt. After that, Didn’t hear from her for a while.

Some time passed before I heard from Crystal again, this time complaining to me that Daniel was no longer paying child support. She couldn’t do anything for the kids for Easter this year as a result. A few days before Easter I stopped by her work and left an envelope on her desk with cash that amounted to a little less than half of what Daniels monthly child support payment would be. With the cash I left a note saying “Give the kids a good Easter! Whatever’s left, use it to handle your business.” She thanked me, saying she bought the kids new clothes and a slip and slide deal for the yard. Like before, didn’t hear from her after that for some time.

My friends warned me that she was just using me by playing the victim. Even though I had that gut feeling, I gave her the benefit of the doubt.

We’re now at two months after she broke up with me and she still said she was in a relationship with me on Facebook. But, she said she didn’t want to be in a relationship with me. Crystal mentioned to me that she told her coworkers we were just on a break. I didn’t hear from her unless I initiated conversation or if she needed something from me. I was getting more and more upset by the day. She left for no reason, expressed interest in continuing our relationship, and everything I do for her goes with little acknowledgment and little gratitude. Yet, she was still projecting to the world we were together. I asked her about the FB thing. She claimed she didn’t know how to change it, yet she was the one that put it there. This is when I started noticing the weird and nonsensical excuses start popping up. I was left wondering if she was waiting for me to change it so she didn’t have to face the guilt of doing it on her own. Maybe she was waiting for me to do it so she could tell everyone that I’m the one that dumped her? Regardless, I left it for her to change. She wanted out, she can do it on her own.

I tried thinking of what could possibly be wrong and how can I restore this relationship that she was open to continuing? I wrote Crystal a six page letter explaining to her everything I loved about her. Intimacy was an issue with us because the birth control she was on left her always unsatisfied. I told her I wanted her to get off of it. She expressed concern that she didn’t want any more children. I told her I would sacrifice my ability to reproduce to restore our intimacy. I explained to her that her children were the center of my world and they were more than enough for me. I loved her children so much that I didn’t want to have my own if she didn’t want to. I wanted her to keep the kids on the weekends so we can spend more time with them and get them more involved with us. I even went as far as telling her I wanted to come home to her, Lucas, and Olivia every day. I told her I wanted to take over  the responsibility of putting the roof over their heads so she could get the part time job she’s been wanting to get so she can be with her children more. I was met with hostility. She began accusing me of neglecting her and her children, accusing me of not putting anything into the relationship, and accusing me of never being there for her. I was upset. All of this hard work I put in, at the time working two jobs to provide for her and her children when their father wasn’t stepping up to the plate to take care of them. All of the things I did for her and her children, all of this time spent establishing a family, just to be told I did none of that. It was heartbreaking.

I asked Crystal about all of the things she said about me being her soul mate, and her loving me, staying together for the kids, and working out our issues. I was met with the answer “That’s just how I felt at the time.” I was infuriated. I felt betrayed. I felt like our entire relationship was a lie. At this time I still had self esteem so I brought up to her that I felt that she never loved me. I felt that she was just in love with the idea that she was happy for once and when she was no longer happy, it was easy to throw me away because I didn’t really matter. I was met with no answer. However, Crystal was still insistent that she tried to stop smoking weed in our relationship but just couldn’t. I began to wonder what this meant because she would always say it and at times where the subject wasn’t relevant.

Progressively Crystal started to focus her attention on weed. Any time I had a talk with her she was rushing me to finish the conversation so she could go score weed from her friend Starley. All she could talk about was weed. Who she was smoking it with, who she was getting it from, and what she was doing with it.

One day I became so angry over everything that had been happening. These accusations that the failure of our relationship was all of my fault. These stories that I never brought anything to the table, that I never put any effort into the relationship, that I didn’t care about her children. Yet I was still there providing for all of them. I told Crystal I felt it was fair that she owe me for doing the brakes on her van. I did that in good faith on her word of restoring our relationship, and all of these things I did for her after our relationship ended, providing for her and her kids. I felt owing me back for something that I did just for her would make her understand how hard I had to work to provide for her. If I’m going to get accused of not putting anything into our relationship, she could work hard to owe me back to realize what I truly put into it. I was met with hostility, her saying she owes me nothing. I told her I felt she was not a good person, that she lied to me about what our relationship really was, and that she chose drugs over a relationship that focused on her children. I told her I felt it was best we go our own separate ways. Immediately she laid the guilt trip on me “I can’t believe you would say that, we really care about you and appreciate everything you do for us.” Guess what? I believed her and I stuck around. Wait a minute….. Here I am being accused of not putting any effort into the relationship, yet the moment I express the desire to move on with life and all of the sudden there’s acknowledgement and gratitude of what I do for them?

We didn’t talk for a few weeks after that. For whatever reason I felt bad about what I said even though I meant it. I came forward to Crystal and apologized. I was still providing for her, giving her a days worth of wage when she had to take unpaid time off to tend to her sick kids. As time passed I was no longer thanked for it. She just took it as if it was expected. She was concerned that I’d lash out again and tell her she owes me that back as well, but I promised her I would never do that again and I never did. She was molding me to accept the shit she threw my way in stride, while continuing to supply her with her needs. Meanwhile….. What am I getting out of this besides emotional abuse?

No matter what I did, no matter how much I provided, the time I spent with her kids, it was never acknowledged. And Crystal continued to accuse me of being at fault for everything that went wrong in our relationship.

By this point I would have been done and moved on with my life. I knew I didn’t deserve to be treated this way. The only thing that kept me fighting for us was her children. I was not about to walk out of their lives (although close, as mentioned above). Lucas and Olivia were my motivation to continue to fight for my relationship with Crystal. I was willing to take a lot of shit to stand up for them.

Four months after she dumped me, Crystal’s attention by this point was anything and everything with weed. She began bragging about all of the weed her coworker was “giving” her. Since she could no longer substantiate the money I was giving her was going towards the kids, I began to suspect she was spending it on weed. People just don’t give away weed by the ounces, as Crystal was claiming she was getting at no cost. I started noticing other changes in Crystal as well. She began to quickly lose a significant amount of weight, she was becoming more dishonest and deceptive. I had a feeling she was hiding something. Her text messages became less coherent, some didn’t even make sense. She had excuses for everything she did. She lost all sight of reality and would come up with elaborate stories to justify her idiosyncrasies. Crystal stopped talking about her children altogether, as if they didn’t matter anymore. Something was wrong. Smoking weed doesn’t do this to you. I mean, she smoked weed in our relationship and remained perfectly normal. This isn’t the Crystal I know. Her behavior was progressively becoming more and more bizarre. Then one day it all came to me. All of these changes in Crystal started appearing when she started seeing Sam again back in December. Knowing Sam is a heroin addict I became suspicious. After our relationship Crystal started complaining about back pains to the point where she couldn’t move. Sam was always her go-to source for pain killers. I began researching symptoms and behavioral patterns of addictions to certain drugs. My research showed that Crystal displayed a vast majority of these signs. Because of all of these considerable changes in her appearance and personality I became worried that the her always insisting “I tired to quit weed, but just couldn’t” meant something else. With all of the signs in front of me, I began to suspect there’s something more than just weed going on.

My attention immediately shifted. There’s possible drug use going on and maybe that’s why our relationship started to have issues? If she’s lost sight of our relationship for no reason and lost sight of her children then SOMETHING must be going on, right?

I had to confront Crystal about these changes. The fact that she was losing sight of her children was just cause for concern. On her off nights I’d try to stop by her house to confront her about the issue. I didn’t want to address it over the phone or text. I needed to talk to her about this face to face. I’d stop by on Wednesday and Thursday nights. She was never home. I’d stop by much later those nights and still to no avail. After the second week of trying I stopped by her house at night bearing a gift, a growler of her favorite beer from Callahan’s. She still wasn’t home. I sent her a text letting her know I dropped something off. She thanked me and said she was with Sam. I decided to wait until she got home, if she ever did that night. These concernable changes in her were eating away at me. I had to confront her about it. So I waited. She finally got home around midnight. I greeted her, and went inside her house to talk to her. She asked me what was going on and why I was there so late. I simply told her “Look, I’m concerned there’s something other than weed going on.” Immediately she lashed out “Look! I’m not smoking heroin, OK?” There was a brief pause. She looked at me with guilt then she continued to say she’s not doing other substances as well. I never told her what I thought she was doing, let alone how she was doing it. The fact that she was so quick to lash out she wasn’t smoking heroin seemed to be a clear admission of guilt. She then volunteered to tell me she spent very little time with Sam and that she was always spending her time alone. Yet, she never came home after work and didn’t get home until midnight to one in the morning. Seems like her “alone” time was often spent with her heroin addict best friend until the early hours of the morning (on work nights) doing who knows what? As for all of the changes in her appearance, personality, and mentality? Losing sight of her children? Yeah, she had a bunch of excuses and stories to justify those was well. None of them made any sense and was often self contradicting. It was reminiscent of the blatant and poorly executed lies my sister as a teenager would tell my parents to mask what she was truly doing behind their back. It was clear she was hiding something and I pointed that out to her. Crystal said the only thing she hid from me was smoking cigarettes. This didn’t make much sense and seemed like yet another diversion. It’s unlikely she’d be so open about smoking weed but hide smoking cigarettes. The whole story just didn’t make sense. At this point anything she did or said went without any sense or reason and it became normal for me to expect this type of behavior from her.

While I was there I talked to her about getting the kids into swimming lessons because she wanted to do that while we were in our relationship. I was met with a ton of excuses why she couldn’t do it and why she didn’t want to do it. I kept trying to get her to focus on her children by suggesting activities we could all do together but I was always met with hostility and resistance, with the conversation going back to weed and drugs and inevitably how everything is my fault. The stories as to why she ended the relationship became more and more far fetched. It was the usual “you don’t care about me and my kids” and then it turned into fabricated stories, flat out lies that everything I’ve done for her and her children never existed. Despite me pointing how much my entire focus was on her children over the past 6 months, I was just met with denial that any of that ever existed. It was then Crystal told me she wanted me out of her life. Crystal told me before she broke up with me she began to feel awkward being around me, again without any explanation why. I asked Crystal if it was worth throwing everything away she had to return to her apparent relapsed habit, she answered with “I think I made the right decision.”

At this point I felt like I was going crazy. I was depressed. Here I was fighting for the woman I love and her two beautiful children I love to death, and she was going down this path of drug use. I was losing myself. I was spiraling into a deep depression. She really made me feel like everything was my fault. I was trying my best to put more in, but I was getting worn out. I was losing myself.

When I was at her house confronting her about her drug use I noticed the kids scooters were broken. I told her I wanted to buy them new ones. She agreed, telling me specifically what they wanted. I bought them and presented them to the kids a few days later. She limited my time with the kids that day. I enjoyed every minute of it, riding my bike around with them while they rode their new scooters. Two observations I made that day: Crystal didn’t seem to have too much focus on the kids. When I arrived she asked me if I had cigarettes. She’d just take them and go smoke in the corner looking the other way, paying no attention to what the kids and I were doing. She left them with me and went and did her own thing. Her house also smelled strongly of weed. I didn’t say anything at the time, but I took issue with it. It became clear she was smoking weed around the kids now. That day Crystal’s mother randomly showed up and asked if I wanted to help build the club house for the kids. I found it strange that her mom was asking me that question, as if she had no idea what was going on. I didn’t want to put Crystal on the spot that day because that project I was trying to get us involved in, for the kids, she didn’t want me involved in. Just a few hours later Crystal told me to leave. I withheld from crying as I gave Lucas and Olivia one last hug goodbye. I gave Crystal a hug too and left. I cried the whole way home. I knew that was the last time she’d ever let me see Lucas and Olivia. Hardest thing I’ve ever had to deal with in my life.

One other important detail I should bring up about my final visit with the children is their educational development. While I was playing with them they came up to me and asked me how to read the word “Razor” on their scooters. Now, I’m no educational expert and I understand five year old children develop at different rates. However, it seems a little off that two five year old’s that display no signs of any sort of learning disabilities would struggle to even pronounce the letters in the word “razor”. I spent some time with them, helping them overcome their struggle of pronouncing letters they were unfamiliar with. In a mere half hour they were reading to me everything that was written on the box their scooters came in. I wish Crystal would have seen that, but she was preoccupying herself elsewhere. She probably wouldn’t have cared either. It made me feel good that they were receptive to learning, and anytime I taught them something I was always overcome with joy.

Crystal didn’t spend any time teaching her children any sort of basic education skills, at least not while I was around. In the entire time we were together I never saw her read to them, or have them read to her. She never taught them how to write, never taught them anything. When I was around all she ever did is set them in front of the TV in the morning, put on a children’s TV show, put some food in front of them, and yell at them to stop standing on the table. When the TV shows were over, go outside and play. I can appreciate that part, much better than staying inside playing games on a tablet or video game. But, there’s this apparent fact that she does very little to contribute to their intellectual development. Seems like she’s relying on the children’s school to handle that part with no involvement on her part. But I digress…

My depression grew stronger by the day. I don’t know why any of this happened, and I felt it was all of my fault. I truly lost myself. My life revolved around striving to provide good lives for a woman and her children whom I’d die for, and no matter what I did, it was never good enough.

I had to make sure I wasn’t going insane. I approached some people that know Crystal on a daily basis. I asked them if they noticed the same bizarre changes in her as I did. They all agreed, saying things like “She’s become really stupid” as well as the same observations that she doesn’t really talk about her kids anymore. They did point out how she always complains about Daniel not paying child support, about me, and everything else. I told them what was going on with all of the weed, her heroin addict best friend, and what she was doing to me. They all told me I deserve better and to get the fuck away from such toxicity. But I just couldn’t. I was concerned about Lucas and Olivia. The environment that Crystal was starting to subject them to was not healthy for them. It was validating to hear from other people that Crystal was changing for the worst in noticeable ways. It was difficult to describe to people what was going on when I felt like I was the only one seeing it. I’m glad I wasn’t the only one baffled by her rapidly changing behavior.

My friends noticed my depression too. They asked me what was going on. I told them everything that was happening. They reaffirmed everything I brought to the table for her and how foolish she was for choosing drugs over someone that loved and provided for her children. But that didn’t make me feel better. Nothing changed the fact that Crystal was losing focus on her children and was focusing more on her friend Sam and all of the actives she was partaking in with her, especially all of the drug related activities. Many of my friends had the same concern. If the situation was getting this out of hand, to where the children were being exposed to drug use, I was told there was nothing I could do about it. She was already too deep into her addiction. Many of my friends suggested I call CPS and let them know what was going on. I couldn’t bring myself to do it. I convinced myself in my own mind I could save Crystal from this.

Again, some time went without hearing from her. I was getting more and more depressed, blaming myself for everything that happened because of how she projected the situation to me. By this point Crystal was always expressing how ungrateful she was for everything I did for her and her children, and I felt worthless as a result. I knew I was losing sight of myself and I realized it was time to pull away. I was empty inside, I was no longer myself. I saw the shadow of what I once used to be but that’s it.

A little over a month ago I asked Crystal for my house key back. At this time I was going to tell her I was done, I can’t do this anymore. Before I could say anything other than asking for my key back she immediately went off on me telling me CPS was investigating her. I was mad when she told me that. Yeah, everyone saw what she was doing to herself but obviously it was to such a great extent that someone else took the initiative to do something about it. Of course she blamed me for it. Crystal never told me the details of the investigation, but she did say it scared her and that she was going to start quitting smoking weed and start focusing on her kids. What. The. Fuck? How is it not your natural instinct to focus on your own children? Seriously? Does it really take an intervention with CPS to motivate you to care for your children? At this point I felt like I cared more about her children than she did. Really, if you’re doing anything as a parent that makes you fear a visit from the CPS, let alone warrant it, then it’s probably something that you shouldn’t be doing. We’re talking basic common sense here. Crystal’s panic and fear over this situation once again suggested there was more going on than what I already knew about.

I tried to talk to her to see what was going on. I knew her well enough and I thought I was a significant part of her life to the point I truly felt like I could help her. Wishful thinking. She just made it clear she wanted me out of her life but only to the extent to where she could reach out to me if she needed something. At this point I wanted to explain to her all of this hurt and pain she caused by all of the lies she told about me, the fact that she never gave me recognition for everything that I’ve done for her, and all of the other hurtful things she’s done.

I never got my key back. I was just met with excuse after excuse why I couldn’t get it back. I was just done. I started to distance myself from the situation. There was concern by my friends and family that she could possibly retaliate due to her believing I called the CPS. I just changed my locks and beefed up security around my house. Who knows what she or her doped up “friends” are capable of doing at this point. One person that knows her pointed out to me “CPS shows up and all of the sudden she cares about her kids.” Yep, I wasn’t the only once noticing this trend.

This was getting out of hand. Crystal’s mother is the primary caretaker of Lucas and Olivia, more so than Crystal. I wrote her mother a letter explaining what Crystal was doing, who she was doing it with, who they were, and how everyone including myself noticed her losing sight of her children. I also explained in the letter how I stepped up to the plate to provide for Crystal, Lucas, and Olivia when Daniel allegedly wasn’t. Crystal never told anyone everything I did for her and her children, no, she just complained to everyone what a horrible person I was.

Yeah, you read that right. Crystal flat out denied to others all of the support I was giving her while Daniel allegedly wasn’t paying child support. Nobody that knows her knew I was doing that until I told them. Yet, she was quick to complain what a horrible person I am.

About a week ago I got a text from Crystal saying “I will ask a favor of you.” Sounds like a demand doesn’t it? Obviously at this point this is the norm. I only hear from her when she wants something from me. There was this TV show we used to watch, “Once Upon a Time”.  She wanted me to burn the episodes she hasn’t seen on DVD. I should have said no, but of course the pushover I had become said yes without hesitation. I told her while I was at it what TV shows or movies do the kids want? I was met with “ummm, I don’t know.” Again, I became infuriated. How the hell can you ask me for something for yourself and not know what your own children want? I ended up copying all of the children’s movies I had, including a lot of new movies.

I lost it again. Out of the blue here’s Crystal only contacting me because she wants something from me for herself and that’s it. I finally expressed to her how she had treated me, all of the lies and deceit, all of these accusations that I did nothing for her, these accusations that I don’t care about her children. All she told me is “You always have to be right, don’t you? I hate it when you try to prove me wrong.”

I told her she had to come pick up the DVDs I made for her. I was done going out of my way for her. She came to my house to pick them up. I told her how ungrateful she was for everything I’ve done for her and how she’s made me feel worthless. All she could say is “well, sorry you feel that way.” She didn’t care how made me feel. She didn’t care about what she did. She proceeded to accuse me of calling the CPS because I’m “the only one that knows about heroin.” (Gee, is that another admission of guilt?) I explained to her that other people began to notice these suspicious changes in her and that I told those people (including her boss) what was going on. She looked at me in anger, said “that was stupid” and stormed off in her van.

Her life was in a clear downward spiral and I was allowing her to drag me down with. I sent her a text shortly after she stormed off asking her what did she expect? Everyone’s concern was growing about her physical, mental, and emotional changes. Am I just supposed to keep it a secret and tell everyone she’s fine? No, I’m going to tell people what’s going on so they too can encourage her to clean up her act. We all care about her. She responded with “I’m just trying to help my friend kick a habit and now everyone thinks I’m a druggie.” In the past year she’s been putting Sam down she never once mentioned that she was trying to help her quit drugs. How the fuck do you help a friend kick a drug habit by doing drugs with her? She proceeded to explain by keeping Sam in her life she’s inexplicably lost most of her friends. I told her “Congratulations, you just lost another.” I mean, really, is this not a sign you’re fucking up if you lose all of your friends because of who you become when you chose a drug addict to be the focus in your life? Again with the nonsensical excuses and elaborate stories with no basis in reality.

Now all of the sudden Crystal has this codependent relationship with Sam. While we were in a relationship it was nothing but stories of how bad Sam treated Crystal, how Sam doesn’t have a job and has to hustle goods to score money for drugs, and how horrible of a person Sam was. Now that Crystal is with Sam again the stories have changed. Now it’s “I can’t let her go of her, we’ve shared too many good memories together.” “I’m trying to help my friend kick a habit.””I’m leaving my foot in the door for her.” These memories Crystal shared with Sam were prior to Lucas and Olivia, the peak of Crystal’s past of partying, drug, and alcohol use. This seems to be sort of an explanation as to why Crystal appeared to lose sight of her children. They didn’t exist in the time of these memories that she’s trying to relive. Crystal was starting to act like her children are a burden to her own identity.

Crystal always hid Sam from me. I never met Sam and Crystal never had anything good to say about her. How am I supposed to think a worthless drug addict is a good influence for Crystal and her children? I knew very little about Sam other than her name was Sam, she was getting evicted from her home, she wasn’t a good person, and she was a heroin addict. I summoned the help of some friends in law enforcement to see what they can dig up with just that info. I wanted to know who this Sam person was, and if there’s any records of crime or drug abuse. A few hours later I was told of Samantha Diane Callahan’s criminal records, the attempted restraining orders against landlords to avoid getting evicted, all of the evictions, the felonies, and so on. I was also directed to former employer records, and accomplishments before the drug addiction. I just let my LE friends know who Sam was and Crystal’s involvement with her. Do as they see fit if the opportunity ever arises. It is unfortunate, it seems like Sam was a decent person before destroying her life with a heroin addiction. Was I wrong in doing this? I don’t think so. My concern for the well being of Lucas and Olivia became so great that I felt this was a necessary measure to take since I can no longer be around to look after them.

My focus is the safety of Lucas and Olivia. I had to reach out to Crystal’s mom and my LE friends to make sure that happens in the future. I was done at this point, there was nothing else I could do. I had to look out for myself. I had to remove Crystal from my life.

After Crystal stormed off I blocked her on Facebook. Before deleting her number on my phone I told her to never talk to me again, never ask anything of me. I also told her about the note I wrote to her mom and consulting my LE friends about Sam. Of course she got angry and told ME to stay out of her life. All of these demons she’s been hiding from the world, the demons that’s preventing her from raising her children in a healthy manner have now been exposed. She asked me if I was happy with myself for exposing who she truly is to everyone. I said “Knowing I did the right thing, yes, I’m content.” And that was that.

I lost sight of myself caring for someone who never cared about me. She became the product of her environment, choosing to surround herself with drug addicts, acting just like them and likely using with them beyond weed. Whatever void she has in her life, her own inadequacies she projected on to me. Her personality became toxic and I was becoming just as toxic as her, denying my own self-worth and having the same feelings of inadequacy. I was becoming just as horrible as the person she had become.

The Borderline Breakup – My Lowest Point. Trying to Make Sense of it all and Picking up the Pieces

Removing Crystal from my life didn’t produce the “instant” results I was hoping for in restoring my own self-esteem. I was still empty inside, drained from the hell I allowed myself to be put through. I still felt like this was all my fault. I was still depressed and I didn’t know where to begin to recover from the prison I just escaped from. And why the hell did this all happen anyways? I was still left without any answers for closure.

At the suggestion of some friends I went and saw a therapist to help in recovery. Told her everything I’ve recited in here in greater detail. Immediately I was assured I wasn’t the only one this has happened to, and none of it is my fault. Crystal has Borderline Personality Disorder.

Here’s the way it was explained to me: Think of our emotions as a bucket. When our bucket is full of water, we are happy and complete. When we’re down, we work on ourselves to fill our bucket. In a relationship we can occasionally take water from our bucket to fill our partners bucket and make them full. Crystal’s bucket has holes in it, all of the water leaks out and causes a constant feeling of emptiness and lack of identity. She depends on people close to her to fill her bucket. Since her bucket leaks she requires constant filling from others around her. When those close to her empty their buckets to fill hers they’re left with the same feeling of emptiness. Because they have no more water to fill the void in Crystal’s bucket they’re of no use to her and she moves on to find someone else to fill her bucket.

That’s what happened to me. When I was gone on my work trip back in December I was not there to fill Crystal’s leaking bucket. Being alone left Crystal, who has no core identity, feeling empty and abandoned. This combination of feelings does not set well with the Borderline and can lead them to taking drastic, often rash action. Borderlines fear exposing their emptiness to others so they project their feelings of inadequacy onto those they depend on for fulfillment. To Crystal, it was my fault that she was empty hence the outwardly expressed feeling of neglect. Seeking fulfillment, she reconnected with her friend Sam. In doing so she took on the identity of her heroin addict friend and pushed me away with no remorse or empathy whatsoever. In continuing to provide for her after our relationship, I drained my bucket and was left with the feeling of emptiness.

This is the game Crystal plays. Recall how I mentioned she was so in tune with my own wants and needs, unlike any other woman? Crystal mirrored my identity to portray what I wanted in a partner. This strategy allows her to lure people in and open themselves up to obtain her needed supply of fulfillment. Because I was not there to fill her bucket she turned to Sam to seek fulfillment and just like that her identity changed to become a reflection of the person that Sam is. This is why all of the sudden she identified as a drug addict after pushing me away. She will continue to change identities to keep certain people close to keep her never ending supply of fulfillment coming in. The term emotional vampire comes to mind.

A quote I found recently that accurately sums up the game that Crystal plays:
“There is always someone else, they discard relationships like we discard trash. They change identities in a similar way, but they never change their pattern of relationship, and they rarely change who they are underneath all of their masks. Still a lonely child hoping someone really special will love them, what a tempting trap, what a prison! Your love will never be enough to save them no matter how much they try to convince you it will. You will lose yourself trying to do that.”

I lost myself trying to fight for a person that never existed. My altruism was masking my own emptiness.

People like Crystal will never have fulfilling relationships with anyone. Many people in Crystal’s life see what she’s doing to them, that she has no remorse for how she treats them, and they remove themselves immediately. I wasn’t so lucky. I was blinded by the light, lead to believe I was working hard to establish a family. I fought for Lucas and Olivia. This is why Crystal doesn’t have close friends. She keeps everyone at a distance, only contacting them when she needs a supply, and pushes them back off in the distance. This way, they don’t get too close and discover what’s behind the facade. For those that do remain close, they’re eventually split black. They’re the enemy and they’re pushed away permanently. Earlier in this blog I explained that Crystal didn’t like going out in Ramona in fear of running into people she didn’t want to see. These people probably did nothing wrong, they were split black in Crystal’s mind and they’re now bad people. Throughout her own life and in her own mind, Crystal has created more enemies than friends.

This begs the question. What about Lucas and Olivia? How do children develop being raised by a mother who has a personality disorder? Doing brief research online, children of Borderline mothers tend to see themselves as failures for not being able to make their mothers happy. They are likely to internalize her mentality that everything and everyone is bad, becoming despairing themselves. They are also likely to become enmeshed in their relationship with her and find it difficult to separate. Basically, they could end up just like her. Recently I had a friend reach out to me, a former neighbor from high school. She talked with me a bit after reading this blog and was able to associate on a fairly deep level the issues I’ve been going through. One thing I’ve found in my readings and the assurance she provided me is it’s entirely possible the positive influence I’ve brought into Lucas and Olivia’s lives will later translate into them seeing the environment they’re in and being able to make a conscious choice to get out of it and make something better of themselves. Additionally, after finding out who Crystal really was and all of the bad things she’d ever say about Daniel, it’s likely he’s not even remotely as bad as she suggested he is, and he’ll be the influence in their life needed for healthy development.

Conclusion: What Have I learned From all of This?

Crystal has a personality disorder which means her view of the world is twisted and different. It’s a horrible burden for her, not an excuse to get away with what she does to others. Her emotions overpower her reality, she has a different reality in her head. She lives in an imaginary world where people are mere objects. There is no way to use logic or the reality of the situation(s) to make her “snap out of it”. If it were that easy, It wouldn’t be a personality disorder and it wouldn’t be difficult to treat. Basically, I was trying to have a functional relationship with a dysfunctional female.

That said, Crystal’s issues have nothing to do with me. Just because she laid blame at my feet for all of her issues didn’t make them my fault. It didn’t matter how much love I showed her and her children after she perceived me as neglectful, I was already split black at that point.

I’ve come to realize my depression, feeling of emptiness, and the thought of losing myself came primarily from Crystal projecting herself on me. This lead me to feel everything she was putting on me, I became Crystal. Once I came to this realization I began to understand what goes on deep down inside of her. The depression, the feeling of emptiness, and the lack of identity. It’s a horrible place to be. Unlike Crystal, I knew something was wrong with me. I didn’t hide it, I didn’t mask it. I talked about it to friends, family, and my therapist. I got help. How she on me made me feel would have been a huge struggle to deal with on my own, if at all possible. Knowing this, how Crystal feels on the inside, I can’t help but feel sorry for her. It doesn’t justify how she treated myself and others, but I have regained some amount of sympathy for her because of how tragic it is feeling like this all of the time.

Once I discovered the characteristics of the Borderline and realized our entire relationship was in fact a lie, it was easier to come to terms and seek closure for this entire mess. Getting over a breakup with a Borderline is nothing less than pure hell. In my past relationships there was always a sense of finality, a clear end to the relationship. In normal breakups there’s a certain degree of logic involved and we can understand why it happened, even if we aren’t satisfied with the reason(s). In the case of a Borderline we are often left wondering why? Things were going so well then all of the sudden everything changed. She suddenly became cold, distant, and detached. We are left feeling a hurt that we have a hard time equating to any other event in our life. We experience a new low in our lives while the Borderline has already moved on instantly. It makes no sense.

It’s difficult coming to terms with the fact that the Borderline seemed to love us, but was able to walk away. The truth is the Borderline was never in the relationship the same way we were. They were role-playing while we served a purpose for them. Lacking a core sense of identity, they draw that identity from us. If we trigger their fear of abandonment they come to resent us very quickly, projecting their inadequacies on to us. We are now the enemy. As a defense to this invalid perception of abandonment, the borderline abandons us instead.

I made the mistake of thinking I could change Crystal. She has to make the necessary changes herself. Looking back on my story I have to wonder, with a degree of introspection, what was lacking in me to allow myself to remain in a dysfunctional relationship. Admittedly, I was addicted to the relationship and the false dream of who I thought the person was. After reading my story, myself and presumably my readers are left wondering why I tried so hard to be in a relationship with someone disordered? She didn’t force me to stay at her side, I made the choice to remain in a bad relationship, for the sake of her children.

I’m not without fault in this. The fact of the matter is, a completely healthy person would have never put up with what I endured or received for very long (if at all.) Doing some self-reflection, there’s a selfish underside to this. There must have been something missing in my own life to shift focus on her, allowing me to forget myself. It worked. When things finally fell apart I had completely forgotten myself. Thankfully I never lost sight of my career goals, my current job, or my assets. I did, however, lose a lot of the little things in life that defined who I truly am. Recently another woman I’ve been seeing asked me what else I’m into other than flying airplanes. I drew a blank. I used to be able to rattle off all of the other little interests I had that occupied my time and made me an interesting person. That’s when I realized the person I see in the mirror is just a shadow of my former self.

That void I was seeking to fill in this relationship was my interpersonal desire to have a family. Stepping up to the plate for Lucas and Olivia, two children I love to death, I instinctively dropped the less important and selfish things in my life to prioritize my focus on them. All of the hard work in my life getting to where I’m at now was with the goal of raising a healthy family. I was lead to believe my relationship with Crystal was working towards having that family. It didn’t come as I envisioned it, but I was ready to have that family that I thought was in front of me. Crystal took full advantage of that desire she saw in me, using her children as leverage in the act she called our relationship. Losing Lucas and Olivia from my life has been a truly traumatic experience.

It really brings to question if Crystal truly cares about her children. If the best man that’s ever come into her life (according to her) steps up to the plate to unconditionally love her children doesn’t overflow her bucket, she has some pretty deep rooted issues. She acts as if her children are a mere extension of herself rather than individuals. Her inability to connect with her own emotions and feelings, her lack of identity, and inability to connect with anyone on any level deeper than the surface. If she can’t stay close to anyone then how can she connect with and stay close to her children? If she’s incapable of having empathy or caring about those closest to her then how can she care about her children? This sort of behavior from a mother will often leave their children with a feeling of abandonment, because the mother puts herself first over her children. Crystal took advantage of my desire to have a family as a means of temporary fulfillment, to suddenly disconnect without remorse or empathy, comes to show she has no connection of how this will affect her children. Just as she abandoned me and wanted me out of her life, Lucas and Olivia could only comprehend that my abrupt disappearance without explanation from their life was the same way. Just as Crystal projects her inadequacies on me, I’m certain she’ll project to her children that I’m the one that abandoned them without explanation. The thought that people like Crystal think this is acceptable behavior is quite sickening. It truly comes to show the disconnect from reality and lack of empathy the Borderline has developed. Additionally, the fact that she didn’t want to have children with Daniel and the choice to have them was based on her own mothers desire to have grandchildren, could easily be perceived as unwanted.

Reading the blog of a diagnosed Borderline recently, I found this quote to perfectly match Crystal’s cruel mentality:
Then one day, I won’t love them anymore. It probably doesn’t actually happen overnight, but it feels like it. I’ll wake up and I just… don’t want them in my life. And the fact they still love me will actually disgust me. I will be repulsed by the fact that they can’t just “get over” me the way I’m already over them. And I’ll hurt and I’ll feel bad because I hurt them and I’ll cry because I feel bad. But I won’t really care, I’ll walk away and it will be as though I never truly loved them and I won’t know why. I’ll say “he just wasn’t right for me” and I’ll feel bad because I don’t believe there’s anyone out there who IS right for me and maybe that last one was the only chance I’ll ever get to not die alone. And I’ll tell myself I’m OK with dying alone because at least that way I can’t hurt anyone else- including myself. But then I always crave love again…

Coming directly from the mind of a diagnosed Borderline, the splitting black becomes clearly evident. Because Borderlines are unable to connect with their own feelings, they’re incapable of connecting with our feelings. They have no remorse or empathy when they eventually and abruptly disconnect from their partner. They simply do not care about the pain they inflict on others as a result of their deceptive and careless behavior. As long as they get what they want, at whatever cost, that’s all that matters to them.

Much like other cases of bad relationships with Borderlines, no contact was the best way to begin my path to healing. This was difficult to do at first. Even though I had deleted Crystal’s number from my phone, I had not deleted the text conversations that had been on my phone for the past year and a half. A few days after I told her to stop talking to me I had made the mistake of professing the love I still had for her and her children, in a state of inebriation. After realizing what I did, I had to delete the conversation in its entirety. She’s blocked on Facebook, no longer in my phone, and I’ll be taking my work truck in for service elsewhere. Sorry, Ray.

I have learned a lot from this experience. I now understand things about myself that I couldn’t have articulated a year ago. Being with Crystal has made me feel better about the person I am in a strange way. I should hate her for the things she has done to me, but I feel a little sadness knowing the reality of her mental illness, how horrible it must be to be trapped in her own emptiness. I did everything I could as a human, as a friend, and a companion to support her. Sadly, like all broken animals, it was inevitable that she’d turn on me.

I do feel sorry for the next guy that has to deal with her. I’ll pour one for my fallen homies.

As for Crystal, I hope she eventually seeks the help she needs. I should hate her for everything she did to me. Now knowing how empty she is inside, knowing that she doesn’t know who she is beyond a vague notion of her “false self”‘, I can’t help but feel sorry for her. Don’t get me wrong, I’ll never trust her again and I have no respect for her.  But, there is a good person in her deep down inside wanting to come out. It’s going to take a lot of work on her part, including wanting to change.

Posted in Life | Leave a comment

Characterizing fuel injectors for use on MS3X engine management systems.

It’s been a while since I’ve made a post on the subject of engine management calibration. I don’t do “tuning” for a living anymore and the subject of cars in my life thankfully has gone back to just a hobby. That said, I once again enjoy learning something new when it comes to calibrating engine management systems. I’ve been spending a lot of time in the last few weeks with my 2JZGTE Powered Mustang studying the effects of injector characterization on the vehicle. Before getting too ahead of myself, however, I should introduce what this blog post is all about.

Injector characterization has become a popular topic in the amateur tuning communities lately and for good reason. The stability of an engine’s fuel calibration, from a control standpoint, weighs heavily on the injector flow rate and offset being correct. The goal of this blog post is to shed some light on how to collect data from your own injectors to develop operating characteristics for your application. This blog is aimed primarily towards MS3X users, however, a lot of the information in this blog is universal. Due to the differences in electrical injector drivers used between different manufacturer’s ECU’s, the operating characteristics developed in this blog may vastly differ if using an engine controller other than MS3X.

Before explaining how to collect data to determine the operating characteristics of a fuel injector we must know how the ECU uses this information to meter fuel to the engine. If you’re reading this blog it’s likely you’re already familiar with how fuel injectors are sized. Most commonly we’ll define the flow rate of an injector by how much fuel it delivers over a period of time, in cubic centimeters per minute or pounds per hour. In this blog we’ll use CC/min as our preferred measurement. Knowing how much the injector flows over time is what allows us to precisely meter fuel into the engine. The longer the fuel injector is energized, the more fuel it delivers. We expect this flow rate to be linear, so if we know a fuel injector flows 440cc/min it should flow 220cc in 30 seconds, 110cc in 15 seconds and so on. Since we’re dealing with pulse-widths only in the millisecond range our delivered quantity is actually much smaller, but we still expect the flow to be linear as we increase or decrease the injector pulse-width.  MegaSquirt defines injector flow rate with a global modifier called Required Fuel. The definition of Required Fuel is the effective pulse -width required to create a stoichiometric mixture at 100% volumetric efficiency. There is a handy calculator provided in software that will calculate the Required Fuel pulse-width based on engine displacement, fuel injector flow, number of injectors, and the stoichiometric air/fuel ratio of the fuel being used. The more accurate the information entered into the calculator, the more accurate you can define the flow rate of the injector to the ECU. Once the ECU knows how much fuel the injector flows at 100% VE, for any higher or lower VE value the ECU will just correct the pulse-width based on the difference in VE percentage and whatever other modifiers are applied to the fueling equation.  We should be good to go, right? Not so fast.

If you paid attention to the definition of Required Fuel in the last paragraph, you’ll notice it’s the effective pulse-width required to create a stoichiometric mixture at 100% volumetric efficiency. Since Required Fuel defines the flow rate of the injector, all fueling calculations made by the ecu are calculated as effective pulse-widths. The effective pulse-width is a theoretical value that assumes the injector flows from exactly the time it’s commanded to open to the time it’s commanded to close. In reality it doesn’t work this way. There is a delay from the time we energize the fuel injector to the time it delivers fuel. There is also a delay from the time the injector is de-energized to the time it stops delivering fuel. These two delays combined are called the injector offset, or in MegaSquirt terms Injector dead-time. In this blog, however, we’ll use the term offset as it more accurately defines the operating characteristic. As an example, if we have a Required Fuel pulse-width of 7.5ms and did not apply any injector offset, we’d likely have a leaner than stoichiometric mixture at 100% VE because we haven’t accounted for the the time it takes for the injector to begin and end flow. In that 7.5ms the injector was energized it may have only been delivering fuel for 6.5ms. In this case, there is an offset of 1ms that needs to be accounted for. By telling the ECU the injector has a 1ms offset, the ecu will then add the offset to the effective pulse-width, in this case the Required Fuel pulse-width of 7.5ms and the offset of 1ms for a commanded pulse-width of 8.5ms. The fuel injector is energized for 8.5ms, delivering fuel for 7.5ms of that time, and we now have a stoichiometric mixture. The offset of an injector is not a single, constant number. Injector offset is influenced mainly by the voltage delivered to the fuel injector. Generally speaking, injector offset increases as voltage decreases and the change in offset is exponential as voltage increases or decreases.

As important as injector offset is to maintaining a consistent calibration, it’s one of those values that are seldom calibrated for the application. Until recently, injector offset data wasn’t offered by injector manufacturers and determining accurately the offset of a specific injector seemed like black magic. Injector offset changes with fuel pressure, the electronics driving the injector, and manifold pressure. Because all of these variables have some amount of effect on the offset of the injector, most manufacturers left it up to the end user to determine the operating characteristics for their exact application. And it’s still like this today. Recently I made a post on Turbobricks.com  demonstrating that an OEM fuel injector with operating characteristics taken directly from the OEM ECU varied by a considerable degree when that same injector was placed on a different ECU and engine. Because of this, even with supplied injector data, I encourage the end user to determine the operating characteristics for their exact application.

So how do we determine the operating characteristics of a fuel injector? It’s quite simple. We measure the volume of fuel delivered by the injector over the linear operating range. Wait. Linear operating range? When plotting fuel injector flow, there is a point at very low pulse-width values were the injector flow will become non linear. The point this happens on a high quality fuel injector is very low, usually below 2ms. Because the injector flow becomes non linear, it’s very hard to control the injector and we usually want to avoid operating the injector below the linear operating range. By graphing the injector flow across its linear operating range, not only can we determine exactly what the fuel injector flow rate is, but we can also determine the offset by where the linear regression intersects the X axis.

Since I want to determine the operating characteristics of the injectors used on my 2JZ, I set up a test bench on the car to collect all of the data required. Using a high current variable power supply, I isolated the car’s electrical system from the battery so the ECU and injectors were run directly off the power supply. This allowed me to operate the injectors from 10.5v to 14.2v and get an understanding of how voltage affected offset. The battery was still wired to the fuel pump with a high current battery charger to keep the battery topped off. By running the fuel pump off the battery I avoided such a large current draw on the power supply running the ecu and injectors, keeping a very stable voltage to the injectors. I removed the fuel rail from the intake manifold and set one of the injectors in a graduated cylinder to measure volume of fuel delivered. Using the MS3X ECU in test mode, I was able to control the fuel pump and how the injectors delivered fuel to the graduated cylinder.

To collect data on the operating characteristics of the injector I was testing, I first determined the operating voltages I wanted to collect data. Since my power supply went as low as 10.5v and as high as 14.2v, I decided to collect enough data to determine offset at 10.5v, 12v, 13v, and 14.2v. I started by collecting data at 10.5v. Next, I need to determine the operating range I want to collect data for. The injectors in this application run as low as 1.5ms and as high as 20ms, so I’ll collect data from 1ms to 20ms in 1ms increments. Then I needed to determine how many times I’m going to fire the injector at each increment to collect data on volume delivered. To decide this, I fire the injector at 20ms and adjust the number of injections until the test approaches the limit of the reading of the graduated cylinder. This will provide a better average for the injector flow rate. In the case of the factory injectors, 1200 injections per sample was sufficient. I also need to set fuel pressure to my operating pressure, in this case 43 psi. I haven’t determined if interval has a huge effect on data collection, I set mine to 30ms which is equivalent to about 4000rpm when operating.

IMG_1975

The injector test bench set up on the car, about as sloppy as you can get.

It goes without saying that doing it this way is very dangerous, because you’re dealing with gasoline. Just don’t do it, you’ll burn yourself to death.

I started the test by sampling the volume delivered at 1ms commanded pulse-width, 1200 injections at 10.5v. No fuel was delivered so I moved on to 2ms commanded pulsewidth. 9cc of fuel delivered from 1200 pulses at 2ms commanded pulsewidth. I kept doing this in 1ms increments at 10.5v until I had volume delivered from 1ms all the way to 20ms. Then the test was performed all over again from 1ms to 20ms at 12v, 13v, and 14,2v. If you plan on doing this, plan on taking quite a few hours to collect all of your data.

To show an example of the entire operating range, here are the results from the data collected at 14.2v:

14.2v flow 2JZ440cc blog

2JZGTE 440cc operating characteristics: 43psi fuel pressure 14.2v

There are some slight discrepancies as to how linear the flow is at higher pusle-widths. I’ve found in my testing high mileage injectors lose their ability to flow in a precisely linear fashion. These injectors have a bit over 200k miles on them. Aside from that, you can note below 2ms on the graph where the injector no longer operates in the linear range with the rest of the injector. To plot a linear regression, it’s wise to reject this data from the graph since it’s not in the operating range of the injector. Looking over the data, it appears the injector operates linearly from 2ms to 20ms, so we’ll graph just that data and apply a linear regression with formula:

14.2v flow 2JZ440cc linear blog

2JZGTE 440cc fuel injector linear operating range with linear regression and formula to determine x intercept.

Rounded down, the function of the linear operating range of this injector is defined by the following equation: f(x)=9.3316x-3.7526. You can either determine the X-intercept directly from that formula, or enter the formula into a graphing calculator and verify the data in both graphs match. The X-intercept of the line is 0.402ms, and this is the offset of a stock 2JZGTE 440cc fuel injector at 14.2v and 43psi. This data was collected at 10.5v, 12v, and 13v to arrive at the following offsets for this injector:

10.5v – 0.892ms
12v- 0.692ms
13v – 0.516ms
14v – 0.402ms

Dynamic flow rate can also be calculated from that data collected in these graphs. Referring to the graph above, the dynamic flow rate at 20ms can be determined by doing the following:

  • Determine the effective pulse-width by subtracting offset from the commanded pulse-width: 20ms-.402ms=19.598ms.
  • Determine how much fuel was delivered in one single pulse. Since we measured the volume of 1200 pulses we divide the volume by the pulses: 184cc/1200=0.1533cc per pulse.
  • There are 1000ms in one second, how many times does our effective pulse-width occur in one second? 1000/19.598=51.026 times.
  • How much volume of fuel is delivered if we add all of the effective pulses into one second? 51.026*0.1533cc=7.822cc per second.
  • Multiply by 60 to get CC/min 7.822*60=469.32cc/min dynamic flow at 43 psi.

After a few hours of collecting data I now know the injector offset values at 10.5v, 12v, 13v, and 14.2v. I also now know the dynamic flow rate at my operating pressure as a more accurate figure to apply to the Required Fuel calculator. BUT! MegaSquirt speaks in terms of percentage for defining injector offset. How do we do this?

MS3X wants an offset number that represents 100%. 13v is a nice place to put this number so we’ll call 0.516ms 100%. Now it’s as simple as calculating percentage difference for every other offset value:

10.5v – 0.892ms – 173%
12v- 0.692ms –  134%
13v – 0.516ms – 100%
14v – 0.402ms – 78%

Since the engine doesn’t operate outside of these ranges unless something is wrong, it should be OK to interpolate the shape of the curve to higher and lower voltage values.

Once I get done upgrading the secondary injectors I can apply this data to the ECU and start collecting data on the effects it has with the calibration. Stay tuned.

Posted in Cars | Comments Off

Arduino based AW30-40 / AW4 transmission control. Part 1: Figuring it all out.

It’s been a few months since I’ve had a good Arduino project to play with. Some of you may be wondering about my last writings on the Spa controller and wonder why I haven’t completed that project and have moved on to this one. Well, that project is complete and working quite well. I tend to focus on completing projects without documenting the results towards the end of the project. Suppose I can document the conclusion of that project at a later time.

The idea of this project came about recently when thinking of ways to address the limitations of the transmission control in my 1994 Jeep Cherokee. In the past I’ve used the Megasquirt GPIO board using MShift firmware control my projects involving electronically controlled transmissions. Given the simplicity of the Aisin Warner AW30-40 transmissions (called the AW4 on the Jeep) I figured it would be a good project for an Arduino.

The purpose of this project is much like the spa controller. Exercise my ability to design a control system from the ground up. This includes coming up with the circuits to interface the various I/O to the Arduino itself, write the code for a functional control system, lay out a PCB that will drop into the factory control case, and document what I’ve found in an attempt to help others. There are certain aspects about the factory controls I’d like to change to suit my application. One of these is leaving the converter locked under more driving conditions than just freeway driving. Another change I’d like to make is the ability to manually select what gear the transmission is in. In my model Jeep there is no way to manually select between first and second gear. You may only command the transmission the highest gear it can go, but gear selection is still up to the controller.

First, we need to understand how the factory control system works. Given my past experience with aftermarket control systems on these exact transmissions, I have a pretty firm grasp on how they work. However, each manufacturer has little differences on how they control the transmission, and what is controlled, so it’s best to understand first how Jeep does it on their vehicle. The subject of study in this case is my 1994 Jeep Cherokee XJ with an AW4 transmission.

The best way to understand how the factory control system works is by looking over the factory service manual at the wiring diagrams and connector pin outs to understand what is being used to control the transmission, and what can be controlled:

xjtranscont1

Transmission Controls showing inputs and outputs.

xjtranscont2

Transmission Controls showing inputs and outputs

xjtranscont3

1994 Jeep Cherokee XJ AW4 transmission control pinout

The transmission controller connector pinout basically summarizes what’s all involved in the control system in this application. There are two pins on this controller that are not relevant to a DIY control system: Pin C4 (data link connector) was used for proprietary mopar diagnostic tools and is not needed for a DIY controller. We’ll make our own diagnostics in the new controller. Pin C11 (trans switch power mode) according to the factory service manual (not pictured) this wire does not connect to anything on a XJ Cherokee. I’ll look into this specific function a bit later.

We’re left with the I/O involved in controlling this transmission:

  • Pin C3 – Trans output speed sensor. This input tells the controller how fast the transmission output shaft is turning. In addition to detecting engine load, the controller decides when to shift into a higher or lower gear based on the output shaft speed. This input is pulled up to 5V by the controller and the speed sensor grounds the input to produce a 0-5v square wave. Frequency of the square wave increases with output shaft speed.
  • Pin C8 – 1-2 gear input. 12v applied to this input indicates to the controller that the gear selector is in the 1-2 position.
  • Pin C9 – Drive gear input. 12v applied to this input indicates to the controller that the gear selector is in the D positon.
  • Pin C10 – Stop lamp switch sense. 12v applied to this input indicates to the controller that the brake pedal is depressed. This is usually used to unlock the torque converter when the vehicle is being slowed down.
  • Pin C14 – Solenoid S3 control. This output controls the torque converter lockup solenoid. The controller applies 12v at this output to lock the torque converter clutch.
  • Pin C15 – Solenoid S2 control. This output controls the number two shift solenoid. The controller applies 12V at this output to energize the #2 shift solenoid.
  • Pin C16 – Solenoid S1 control. This output controls the number one shift solenoid. The controller applies 12V at this output to energize the #1 shift solenoid.
  • Pin D2 – Throttle position sensor signal. This input receives the 0-5v TPS signal from the engine control harness. This is used for load sensing.
  • Pin D3 – Sensor ground. This is an isolated ground for the sensors. This is shared with the engine control sensor ground.
  • Pin D7 – Ground. This is a chassis ground.
  • Pin D14 – Battery positive. This input isn’t necessary in this project. It may be omitted.
  • Pin D16 – Ignition switched positive.

In addition to the factory controls, I’d like to add the following I/O to my project:

  • Transmission temperature input
  • Up/down shift paddle inputs
  • Manual/auto mode
  • Serial comms for a status display
  • Tachometer input for WOT shifting (shifts at a set RPM point per gear rather than output shaft speed)

Looking at the connector pinout above, there are quite a few unused pins on the trans controller connector. Since the controller I’m designing is meant to be a drop-in replacement for the factory controller, it would be sensible to obtain some pins to populate the unused pins on the controller connector for the added I/O. Not all unused pins on the connector are available, however. Taking a closer look at the factory controller PCB reveals some pins are common with pins currently in use. We’ll visit this later when we get to the PCB design phase.

 

IMG_0820

Top view of factory controller PCB

IMG_0821

Bottom view of factory controller PCB showing some pins being common with others.

Now that we have a fairly good idea what’s involved in making the factory control system function we need to make sure a standard arduino board can handle the I/O.

There are nine digital inputs:

  1. Brake pedal switch
  2. VSS
  3. Drive gear input
  4. 1-2 gear input
  5. Paddle shift up
  6. Paddle shift down
  7. Manual / Auto switch
  8. Engine RPM
  9. Serial Rx

There are Four digital outputs:

  1. Shift solenoid 1
  2. Shift solenoid 2
  3. Torque converter control solenoid
  4. Serial Tx

There are two analog inputs:

  1. TPS signal
  2. Trans temp

That gives us a total of 13 digital I/O pins, and two Analog input pins. My Arduino board of choice, the Arduino Pro Mini has 14 digital I/O pins and 8 analog input pins. Plenty for this project.

Next up: Circuit design and component selection for all of the I/O

Posted in Arduino Based Transmission Controller, Projects | Comments Off

Arduino Based Spa Controller part 4: Working temperature control

A lot has happened since the last post. First and foremost I’m happy to report that the Arduino has been controlling the temperature on my hot tub for the last few weeks. I decided it was time to clean the tub, fill it up, and start prototyping. The temperature control at first was incredibly basic, using only the few lines of code in the example I posted in part 3. This was done under strict supervision during the initial tests. There were no safeties in either hardware or software which meant that any minor failure could result in the heater running away and causing a meltdown. Once I knew the SSR worked well with the tub heater and thermal control worked as it should, it was time to develop the hardware and firmware. But, lets start where we left off.

The first big change is the display screen. I switched from SparkFun’s basic serial LCD to an OSEPP parallel LCD with an integrated keypad. The new LCD shield not only tidied up the prototyping platform, but it also gave me the ability to develop the user interface end of the controls as well with the keypad. While this shield took up a bit of my available digital I/O and one of the ADC inputs, it still left me with enough I/O for tub functions without having to make any sacrifices. With the new display shield I had to purchase another proto shield with stackable headers to accommodate the control circuits. SparkFun’s proto shield did just the trick in this case.

 

The new OSEPP LCD display shield with integrated keypad.

 

Before soldering a bunch of hardware onto the proto shield I sat down and thought about the hardware end of the controls. Heater runaway is a serious issue to both people and property so I felt it was essential to have both hardware and firmware redundancy when it came to safety. In addition to the two temperature sensors the tub also has a pressure switch in the heater pipe that detects the flow of water through the heater. Later on down the road when I start developing the motor control end of the project I can also use this sensor to detect pump failure. In order for the Arduino to turn the heater on, the following conditions must be met in the firmware:

  • Tub temperature is under target temperature
  • Heater temperature does not exceed the maximum threshold of 106 degrees
  • The pressure switch is closed, indicating water flow through the heater.

In the event of a processor failure where the heater control line is left closed, I had integrated similar logic into the hardware. One of the changes I made to the new prototype is buffered thermistor inputs. By using OP amps to buffer the sensor input, I provide a layer of stability to the sensor reading by making the input impedance constant. This allows me to also drive more than one circuit with the thermistor without experiencing any sort of differential reading. The buffered tub temperature reports directly to the Arduino and is only used in the temp control loop. The heater temperature sensor is used in all saftey shutdowns. In addition to the firmware safeties, A three circuit AND gate provides a hardware layer of protection in the event of a failure. The AND gate drive the SSR for the heater. In order for the gate’s output to be true and high, the following inputs must be high:

  • Heater control pin on the Arduino
  • Overtemp comparator (goes low if heater temp >= 106 degrees)
  • Pressure switch is closed, indicating water flow through heater.

Any one of those inputs that goes low as a result of command or failure will open the SSR and shutoff the heater, independently of the processor.

 

Assembled prototype board woth op amps and logic gates

 

Current working stack of shields. Arduino, proto shield, LCD shield.

 

Posted below is the schematic of the current temp control prototype with integrated hardware safety. The comparator is a basic op amp circuit. The inverting input is a basic voltage divider with precision tolerance resistors that simulate the thermistor circuit at 106 degrees. The circuit currently does not have any hardware hysteresis and exists primarily as a last line of defense in the event of a heater over temp. All of the inputs on the AND gate are pulled low. CMOS gates act much like MOSFET’s in that input capacitance will cause the gate to remained charged if the input floats. This could potentially lead to a false output at the gate and allow the SSR to remain energized. This is a BAD scenario, so all inputs are pulled low with 10k resistors to prevent inadvertent gate charging. In addition to overtemp shutdown, the firmware and hardware will shut the heater off if the pressure switch opens as a result of loss of flow through the heater. The controller considers this an emergency situation and will shut the entire control system down and display the error on the screen.

 

Basic thermistor / pump pressure input schematics with safety hardware.

 

Water flow error screen

 

Normal working controls.

On the next revision of the hardware I plan to integrate a little bit of noise filtering on all of the sensor inputs. I may also plan to integrate a bit of hysteresis into the over temp comparator, however, in testing I haven’t found that necessary.

On the firmware side of things there were quite a few changes made to the display code since the new display is driven in parallel instead of a serial display like the last prototype. The keypad on the new display shield takes up only one analog input and uses different values of resistance to identify to the processor which button is being pushed. The up and down buttons on the keypad were written to change the target temperature of the tub. In the future the other buttons will handle the lights and jets.

After a quick bench test of the new heater control circuits and corresponding firmware, the prototype is back on the tub to make sure everything works in practice before moving on to pump and light control.

Here is the current code with integrated safeties. Firmware safeties should not be used without hardware safeties in the event of a processor hang up or failure. Little bits and pieces of light control and pump control code are floating around in there as well.

//NSFabrication.com SPA controller Beta 2, temperature control
//Designed as a generic replacement for Balboa based controllers
//Provides hysteresis thermostatic control of pool heater with heater overtemp and no water flow shutdown
//OSEPP LCD Keypad control
//Use AND gate control board for hardware redundancy 

#include <math.h> //Library to calculate Steinhart-Hart equation 
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

int temp1 = 0; //Sets temp1 to zero
int temp2 = 0; //Sets temp2 to zero
int temp2raw = 0; //Sets raw temp2 to zero
const int heaterpin = 11; //Heater SSR on pin 11
//int heaterstatus = LOW; //Initial heater status. LOW = OFF
int tgttemp = 100; //Target pool temperature 
int jetflag = 0; //Jet status flag
//int jetstatus = LOW; //Jet output state
int jetpin = 12; // Pump high speed output on pin 12
int pumpflag = 0; // Pump status flag
//int pumpstatus = LOW; // Pump output state
int pumppin = 13; // Pump relay output pin
const int pressuresw = A3; //Pressure switch on Analog 3
int psw = 0; //Pressure switch digital flag
int lightpin = 2; // Light control on pin 2
int lightflag = 1; // Light status flag

// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 if (adc_key_in < 50)   return btnRIGHT; 
 if (adc_key_in < 195)  return btnUP;
 if (adc_key_in < 380)  return btnDOWN;
 if (adc_key_in < 555)  return btnLEFT;
 if (adc_key_in < 790)  return btnSELECT;  
 return btnNONE;  // when all others fail, return this...
}

const int numReadings1 = 100; //Averaging for temp1
int readings1[numReadings1];
int index1 = 0;
int total1 = 0;
int average1 = 0;

double Thermistor1(int A1) { //Steinhart-Hart equation for temp1
  double Temp1;
  Temp1 = log(10000.0 / (1024.0 / A1 - 1));
  Temp1 = 1 / (0.000904790 + (0.00022575 + (0.00000011138 * Temp1 * Temp1 )) * Temp1 );
  Temp1 = Temp1 - 273.15;
  Temp1 = (Temp1 * 9.0) / 5.0 + 32.0;
  return Temp1;
} 

const int numReadings2 = 100; //Averaging for temp2
int readings2[numReadings2];
int index2 = 0;
int total2 = 0;
int average2 = 0;

double Thermistor2(int A2) { //Steinhart-Hart equaition for temp2
  double Temp2;
  Temp2 = log(10000.0 / (1024.0 / A2 - 1));
  Temp2 = 1 / (0.000904790 + (0.00022575 + (0.00000011138 * Temp2 * Temp2 )) * Temp2 );
  Temp2 = Temp2 - 273.15;
  Temp2 = (Temp2 * 9.0) / 5.0 + 32.0;
  return Temp2;
}


void setup()
{
  //Serial.begin(9600);
  
  pinMode(heaterpin, OUTPUT); //Defines heaterpin as an output on the Arduino
  pinMode(pressuresw, INPUT);
  
  digitalWrite (heaterpin, LOW); //Ensures heater is off until commanded on
  
  for (int thisReading1 = 0; thisReading1 < numReadings1; thisReading1++)
    readings1[thisReading1] = 0; //Averaging equation for temp1

  for (int thisReading2 = 0; thisReading2 < numReadings2; thisReading2++)
    readings2[thisReading2] = 0; //Averaging equation for temp2

lcd.begin(16, 2);              //Splash screen on boot
lcd.setCursor(0,0);
lcd.print("NSFabrication"); 
lcd.setCursor(0,1);
lcd.print("SPA Control B2");
delay(2000);
lcd.clear();
}

void loop()
{
  total1 = total1 - readings1[index1]; //Averaging equation for temp1. This filters and smooths the input. 
  readings1[index1] = int(Thermistor1(analogRead(A1)));
  total1 = total1 + readings1[index1];
  index1 = index1 + 1;
  if (index1 >= numReadings1)
    index1 = 0;
  average1 = total1 / numReadings1;

  total2 = total2 - readings2[index2]; //Averaging equation for temp2. This filters and smooths the input
  readings2[index2] = int(Thermistor2(analogRead(A2)));
  total2 = total2 + readings2[index2];
  index2 = index2 + 1;
  if (index2 >= numReadings2)
    index2 = 0;
  average2 = total2 / numReadings2;

temp2raw = analogRead (A2); 
//Serial.print (temp2raw);
while (temp2raw > 880) // Low water temp or no heater sensor shutdown BROKEN
 {  
    digitalWrite (heaterpin, LOW);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print ("ERROR!!!");
    lcd.setCursor(0,1);
    lcd.print ("Water Temp LOW");
    if (analogRead (A2) < 880)
    {
      break;
    }
    delay (1000);
  }    

psw = digitalRead(pressuresw); //No water flow shutdown 
while (psw == LOW)
  {
    digitalWrite (heaterpin, LOW);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print ("ERROR!!!");
    lcd.setCursor(0,1);
    lcd.print ("No water flow");
    psw = digitalRead(pressuresw);
    delay (500);
    lcd.clear();
  }
  
lcd.setCursor(0,0);
lcd.print("Temp:");
lcd.setCursor(5,0);
lcd.print(average1); //Display temp1
if (average1 < 100)
{
lcd.setCursor(7,0);
lcd.print(" ");
}

lcd.setCursor(0,1);
lcd.print("Htr:");
lcd.setCursor(4,1);
lcd.print(average2); //Display heater temp
if (average2 < 100)
{
lcd.setCursor(6,1);
lcd.print(" ");
}

lcd.setCursor(9,0);
lcd.print("SET:");
lcd.setCursor(13,0);
lcd.print(tgttemp); //Display target temperature
if (tgttemp < 100)
{
lcd.setCursor(15,0);
lcd.print(" ");
} 
  
 while (average2 > 106) //Heater overtemp shutdown and error display
  {
    digitalWrite (heaterpin, LOW);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print ("ERROR!!!");
    lcd.setCursor(0,1);
    lcd.print ("HEATER OVERTEMP");
    delay(1000);
  }
    
  if (tgttemp > average1) //Simple hysteresis control loop. If temp is below target temp, turn heater on. Otherwise, off. 
  { 
  digitalWrite (heaterpin, HIGH) ;
  lcd.setCursor (15,1);
  lcd.write ("H");
  }
  else
  { 
  digitalWrite (heaterpin, LOW);
  lcd.setCursor (15,1);
  lcd.write (" ");
  }
  
  
  if (jetflag == 1)
  {
    digitalWrite (jetpin, HIGH);
  }
  if (jetflag == 0)
  {
    digitalWrite (jetpin, LOW);
  }
  
lcd_key = read_LCD_buttons();

switch (lcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnRIGHT:
     {
     if (jetflag == 1)
     {
       jetflag = 0;
       lcd.setCursor (9,1);
       lcd.print ("    ");
       delay(1000);
     }
     else
     {
       jetflag = 1;
       lcd.setCursor (9,1);
       lcd.print ("Jets");
       delay (1000);
     }
     break;
     }
   case btnLEFT:
     {
     //reserved for light on/off 
     break;
     }
   case btnUP:
     {
       if (tgttemp < 104)
     {
       ++tgttemp;
       delay(1000);
     }
     break;
     }
   case btnDOWN:
     {
     if (tgttemp > 90)
     {
       --tgttemp;
       delay(1000);
     }
     break;
     }
   case btnSELECT:
     {
     lcd.print("SELECT");
     break;
     }
     case btnNONE:
     {
     // do nothing
     break;
     }
 }

}

Posted in Arduino Based Spa Controller | Comments Off

Arduino Based Spa Controller part 3: Barebones tempurature control

I always preface blog posts when my electronics speak to the world for the first time:

  

Now that I have an understanding of the previous Spa controllers functions it’s time to start prototyping hardware and firmware on my controller. The first part of the control system I’m going to work on is the tub temperature control. For now it’s just hardware development. Once the hardware is in place I can work on the code later to suit the controllers functions.

I’ve gone back and fourth on what kind of control loop I wanted to use for thermal control. A vast majority of factory spa controllers use a simple hysteresis loop, much like a thermostat, and it works just fine. With the proper hardware I could implement a more complex PWM control that precisely maintains tub temp. For the time being, however, I think a bare bones hysteresis loop will work fine for proving the hardware.

First I have to make the thermistors work with the Arduino. Since there isn’t any input on the Arduino that measures resistance I must come up with a circuit that allows the Arduino to read the temperature sensors. A simple voltage divder will work. Grounding one leg of the thermistor and pulling the other leg up to +5v will allow the Arduino to measure voltage change as resistance to ground (thermistor) changes. In the event of a sensor failure this will also pull the input up to +5v. Since that range of the sensor is invalid, I could write a little bit of code that will shut down the controller in the presence of a sensor fault. I’ll save the sensor fault code for another time, however.

Now comes the fun part. The resistance curve as temperature changes across the thermistor is non-linear. It’s not as simple as calculating a slope-intercept to obtain the temperature of the sensor. Math was never my strong suit so I wasn’t looking forward to going back to my math books to figure out the formula of an exponential curve. Then I remembered a while back, in one of the MegaSquirt documents (long before MS was mainstream) there was mention of a formula that essentially defined (almost) all thermistor curves: the Steinhart-Hart equation. A quick Google search revealed numerous coefficient calculators for Steinhart-Hart equations. I used this one here to find the coefficients based on the information I obtained in part 2 of this blog on the temperature Vs. resistance curve. Once I found the coefficients I was able to write a Steinhart-Hart equation into the Arduino and verify they’re proper.

Instead of posting bits of the code all over the control system as an example, I’ll just post the entire code where I’m at currently at the end of this blog.

Instead of writing the code for the Steinhart-Hart equation from scratch I decided to take a look over at the Arduino forums to see if anyone posted any examples. There were a few examples I found that ranged from simple to complex. I chose to use the simples code I could find. I entered the coefficients found using the calculator previously mentioned, and the pull-up resistor value (10k), wrote a bit of code for my 16×2 LCD display and checked the values against a thermometer. Much to my amazement, the measured and displayed values were dead on. I was now reading temperature from both the tub temp sensor and heater temp sensor through the Arduino!

Temperature being displayed after writing Steinhart-Hart formula.

Temperature being displayed after writing Steinhart-Hart formula.

For the time being Temp1 is the tub temp sensor and Temp2 is the heater temp sensor. Just displaying the raw values calculated directly from the formula I found the display to wander between one degree quite quickly. This makes for a messy display and could cause trouble in a hysteresis loop. In a previous Arduino project making a closed loop boost controller I had found a simple equation in the Arduino forums for filtering and smoothing an analog input. I decided to use that in this project as well. Hardware filtering can be used as well, but I prefer to have the luxury of doing it in software.

Now that the temperature input is working properly it’s time to make the output. I’m more concerned about hardware at this point than software so I figured I’d make the worlds easiest hysteresis loop. If the temp is below 104 heater is on, else the heater is off. Simple as that.

I picked up a solid state relay from a local electronics supplier today to expedite the development of this project. I’ll be using contactors for the motor control, but the heater control I decided to use a solid state relay. Initially I was under the assumption that all solid state relays were capable of pulse width modulation. However, upon further research I found that most of the cheap ones such as the ones used for controlling heaters in home brewing don’t play so well with PWM. The lower end solid state relays use triacs to switch AC current. When a triac is latched it remains latched until the cycle it’s switching passes zero, then unlatches. This means you’d effectively have to implement a zero crossing detector to know when to turn the relay on and off. More expensive solid state relays that are rated for “random switching” are capable of being switched anywhere in the cycle and are more appropriate for PWM control of AC devices. Hey, as long as a simple hysteresis loop gets the job done I’m happy.

The cluster f*%^ on the kitchen table that is the temperature control prototype.

What you see above is the working prototype for the temp control. The heater temp sensor for now is just an ambient temperature sensor. The pool temp sensor is placed in a crock pot full of water. The crock pot, set on high is controlled by the Arduino through the solid state relay. With a target temp of 104 degrees the Arduino energizes the solid state relay to heat the crock pot. When the water in the crock pot comes to temp at 104 degrees the heater is turned off an remains off until the temperature goes below 104 degrees where it will again energize the relay and heater. Basic functionality at its finest. The most complex part of the project was interfacing the thermistors with the Arduino in a fashion that read accurately.

Perhaps one of these free weekends I have in the near future I can tidy up the protoboard and somehow implement the heater control into the spa for a trial run, to dial in the control strategy.

For now, here’s the code I’ve come up with. No safety features, just bare bones temperature control.

//NSFabrication.com SPA controller Beta 1, temperature control
//Designed as a generic replacement for Balboa based controllers
//Provides hysteresis thermostatic control of pool heater with no saftey shutdown

#include <math.h> //Library to calculate Steinhart-Hart equation 

int temp1 = 0; //Sets temp1 to zero
int temp2 = 0; //Sets temp2 to zero
const int heaterpin = 10; //Heater SSR on pin 10
int heaterstatus = LOW; //Initial heater status. LOW = OFF
int tgttemp = 104; //Target pool temperature 

const int numReadings1 = 100; //Averaging for temp1
int readings1[numReadings1];
int index1 = 0;
int total1 = 0;
int average1 = 0;

double Thermistor1(int A0) { //Steinhart-Hart equation for temp1
  double Temp1;
  Temp1 = log(10000.0 / (1024.0 / A0 - 1));
  Temp1 = 1 / (0.000904790 + (0.00022575 + (0.00000011138 * Temp1 * Temp1 )) * Temp1 );
  Temp1 = Temp1 - 273.15;
  Temp1 = (Temp1 * 9.0) / 5.0 + 32.0;
  return Temp1;
} 

const int numReadings2 = 100; //Averaging for temp2
int readings2[numReadings2];
int index2 = 0;
int total2 = 0;
int average2 = 0;

double Thermistor2(int A1) { //Steinhart-Hart equaition for temp2
  double Temp2;
  Temp2 = log(10000.0 / (1024.0 / A1 - 1));
  Temp2 = 1 / (0.000904790 + (0.00022575 + (0.00000011138 * Temp2 * Temp2 )) * Temp2 );
  Temp2 = Temp2 - 273.15;
  Temp2 = (Temp2 * 9.0) / 5.0 + 32.0;
  return Temp2;
}


void setup()
{
  pinMode(heaterpin, OUTPUT); //Defines heaterpin as an output on the Arduino
  digitalWrite (heaterpin, LOW); //Ensures heater is off until commanded on
  
  for (int thisReading1 = 0; thisReading1 < numReadings1; thisReading1++)
    readings1[thisReading1] = 0; //Averaging equation for temp1

  for (int thisReading2 = 0; thisReading2 < numReadings2; thisReading2++)
    readings2[thisReading2] = 0; //Averaging equation for temp2

  Serial.begin(9600); //Beginning of serial stream. There may be a cleaner way to write all of this code. 
  Serial.write(254);
  Serial.write(01); // Clear display
  Serial.write(254);
  Serial.write(128);
  Serial.print("NSFab'd");
  Serial.write(254);
  Serial.write(194);
  Serial.print("SPA Controller");
  delay (2000); //Delay splah screen. No delay in firmware, diagnostics will be performed during splash screen
  Serial.write(254);
  Serial.write(01);
  Serial.write(254);
  Serial.write(01);
  Serial.write(254);
  Serial.write(128);
  Serial.print("Temp1:");
  Serial.write(254);
  Serial.write(192);
  Serial.print("Temp2:");
}

void loop()
{
  total1 = total1 - readings1[index1]; //Averaging equation for temp1. This filters and smooths the input. 
  readings1[index1] = int(Thermistor1(analogRead(A0)));
  total1 = total1 + readings1[index1];
  index1 = index1 + 1;
  if (index1 >= numReadings1)
    index1 = 0;
  average1 = total1 / numReadings1;

  total2 = total2 - readings2[index2]; //Averaging equation for temp2. This filters and smooths the input
  readings2[index2] = int(Thermistor2(analogRead(A1)));
  total2 = total2 + readings2[index2];
  index2 = index2 + 1;
  if (index2 >= numReadings2)
    index2 = 0;
  average2 = total2 / numReadings2;

  Serial.write(254);
  Serial.write(134);
  Serial.print(average1); //Display temp1
  if (average1 < 100) //Clears the third digit if two digit temperature
  { 
    Serial.write(254);
    Serial.write(136);
    Serial.write(32);
  }
  
  Serial.write(254);
  Serial.write(198);
  Serial.print(average2); //Display temp2
    if (average2 < 100) //Clears the third digit if two digit temperature
  { 
    Serial.write(254);
    Serial.write(200);
    Serial.write(32);
  }
  
  Serial.write(254);
  Serial.write(137);
  Serial.print("TGT:");
  Serial.write(254);
  Serial.write(141);
  Serial.print(tgttemp); //Display target temperature
    if (tgttemp < 100) //Clears the third digit if two digit temperature
  { 
    Serial.write(254);
    Serial.write(143);
    Serial.write(32);
  }
  
  if (tgttemp > average1) //Simple hysteresis control loop. If temp is below target temp, turn heater on. Otherwise, off. 
  { heaterstatus = HIGH ;}
  else
  { heaterstatus = LOW;}
  digitalWrite (heaterpin, heaterstatus); //Controls the output of the heater pin depending on condition specified in conrol loop.

}

Posted in Arduino Based Spa Controller | Comments Off

Arduino Based Spa Controller part 2: Brainstorming the new control system

In part 1 of this blog I went over the control functions and safety systems of the original control system in my spa. Now it’s time to figure out how much I/O I need to make a similar control system and figure out if there’s anything I’d like to add to my new control system.

I’d like my new control system to implement the safety shutoff features of the original control system. In a situation where the pump or heater fails I would like my control system to recognize the fault and shut the system down. This will utilize the current sensor array on the tub. The controller won’t use the existing control panel at the spa. I don’t have the tools for reading or flashing PIC microcontrollers, nor do I know how the control panel communicated with the old control system. For the time being I will implement a different, simpler control panel at the tub. Simple pneumatic buttons at the tub, controlling switches in the control box will be used. Maybe……

For now let’s take a look at the existing inputs and outputs the spa currently has.

Inputs:
-Tub temperature
-Heater temperature
-Water pressure switch
-Jets on/off
-Light on/off
-Target temperature up/down

Outputs:
-Pump low
-Pump high
-Heater
-Light
-Temperature display

The user interface is something I’d like to modify from the original. There are only two buttons on the original control panel that define all of the spa functions. One button controls the jets and lights. Four different functions for one button. The other button controls target temperature. Pressing the button increments target temperature until you reach 104 degrees and the cycle starts all over again until at 90 degrees. It would be nice to have a button for each function. One button for the jets, one button for the lights, and two buttons for temp control. If temperature control is going to be user defined then the control system will require some sort of display to indicate target and tub temperatures. That will come later in this blog series. For now, we’ll look into basic spa control.

All of the inputs to the control system are digital with exception of the temperature sensors in the tub and the heater. These sensors are thermistors, the resistance across the sensor changes in relation to temperature. To make the control system accurate we must find the resistance curve of the thermistors so we know what the exact temperature is based on the resistance of the sensor. I performed a little experiment with the sensors from my spa to find the sensor curve. I placed the sensors in a pot of cold water on the stove. I wired one of the sensors to my multimeter and placed a digital thermometer in the pot of water with the sensor. In ten degree increments starting at 60 degrees I documented the resistance of the thermistor with the corresponding temperature in the water. With a very low flame under the pot I gradually heated the water up to 120 degrees to develop a chart of temperature to resistance values. This was my test apparatus for finding those values:

(null)

I found both the tub temp sensor and heater temp sensor had the same resistance to temperature values. After doing this experiment it occurred to me that I never bothered to do a google search to see if there’s any information published on these thermistors. You know, like a transfer function or a chart of resistance to temperature values. Sure enough a quick google search revealed this document with Balboa Controls thermistor values. This document allowed me to verify my own readings against the published readings to verify they’re correct. Knowing these values will allow me to develop a transfer function in the controller to convert resistance (voltage) to a control value. That’ll all come in a later blog.

With exception of the temperature reading all of the outputs are basic digital outputs. No fancy analog or PWM outputs required.

This control system design in its most basic form is going to require the following I/O:

(2) analog inputs
(5) digital inputs
(4) digital outputs

In past Arduino projects the choice package has been the DIP28 Arduino PRO mini:

(null)

This little board is an entire Arduino controller in a tiny DIP28 package. This little package has 8 analog inputs and 14 digital I/O pins, MORE than enough for this project. The PRO mini will be the controller used for this design.

Still undecided how I want to handle the control panel at the top of the tub. I’ll save that for a later blog. Still lots of work to do for now.

Posted in Arduino Based Spa Controller | Comments Off

Arduino Based Spa Controller part 1: Figuring it all out

A few months back I experienced a total failure in operation with my spa at home. Upon inspection I found the relay that controlled the heater had failed and as a result cooked some components on the control board. After spending some time searching for a new control board I began to think to myself “It’s been quite a long time since I’ve laid out a PCB and made up a good Arduino sketch. This is a good opportunity!”  So instead of doing things the easy way and replacing the control board I am going to make my own.

First thing’s first. How does the spa’s control system work? How much I/O do I need to make my controller work? I’ll start this off by showing the points of failure on the original control board and explain some of the functions of the board. Lets take a look at the old control board:

Original spa control board with fried heater control relay and burnt IC’s

Upon first glance you’ll notice there really isn’t that much to the control board. A vast majority of the board population is made up of high voltage, high current switching circuits. The relay array on the far right controls the pump motor, heater, and optional ozone generator. Two relays control the pump motor: one for high speed and one for low speed. Two relays also control the heater: one for heater on operation and one for over temp shut down.  The heater control relays operate in series, both relays must be closed for the heater to function. Seems that one relay is controlled by the microcontroller and one is switched by a voltage comparator.  I’ll go into that operation a little later. The bottom of the board is all power supply, protection, and distribution circuits. The large ceramic fuse protects the pump motor common while the smaller glass fuse protects the transformer in the control box that supplies the board with 12VAC. Power for the control board is rectified and regulated off the 12VAC supply. The spa light itself runs directly from the unregulated 12VAC source. The top left of the board contains the microcontroller circuits as well as the input and control interface circuits.

The controller has three inputs that are used to determine the operating conditions of the spa. Water temperature is sampled by a thermistor located in the tub. Another thermistor samples the temperature within the heater tube. Also located in the heater tube is a flow switch. Both the thermistor and flow switch located within the heater tube are inputs that provide safety features within the control system. If there is no flow through the heater tube or if the heater tube begins to operate at too high of a temperature, the control system shuts off the heater.

The control board interfaces with a basic control panel at the top of the tub:
The control panel allows the user to check the current temperature of the tub, set the target temperature for the tub, control the tub light, and set the pump speed.

When the control system is first powered up it goes through a series of self diagnostics before operating the spa. If a problem occurs the control system will not allow the pump or heater to turn on and flash an error code on the display. I’ve never encountered an error on this particular control system personally, so I’m not sure how many codes there are or what each one means.

If the control system passes self diagnostics it will enter the control loop and begin spa operation. The control loop starts by turning the low speed pump on and sampling the tub temperature. If the tub temperature is below target temperature the heater is energized to bring the tub to the target temperature. Once the tub reaches target temperature the pump and heater are turned off. Every two hours the control system will turn the low speed pump on to check tub temperature and to cycle water through the filter. If the tub is still at target temperature the pump will run for 10 minutes to cycle water through the filter. If the tub is below target temperature the heater is energized to bring the tub back to target temperature and the pump will remain on until target temperature is obtained again.

When the user wishes to operate the spa with jets (high speed pump) they simply press the “Light/Jets” button on the control panel to enable the high speed pump. As a safety feature, the pump will only remain in high speed for a period of thirty minutes. After thirty minutes the pump and heater will turn off and the control system returns to its normal control loop. If the user wishes to continue using the jets they must press the “Lights/Jets” button again to re-start the high speed pump operation. During high speed operation the light in the tub operates.

A jumper on the control board allows the option for heater operation during high speed pump operation. This allows the spa to work on both 120VAC and 220VAC circuits. If the jumper is selected for “low current” operation, normally 120VAC circuits, the heater will not energize during high speed pump operation. If the jumper is selected for “High Current” operation the control system will run the heater during high speed pump operation to maintain water temperature during use.

The control system for maintaining tub temperature seems to be a simple hysteresis loop. Since 450 gallons of water won’t rapidly change temperature the control loop doesn’t need to be complex. I usually set my target temperature for 104 degrees. Once the water temp reaches 104 degrees the heater is turned off until the temp drops below 103 degrees and the heater is re-energized. Simple.

Going back to the picture of the failed control board. The two relays in the lower right hand corner are the relays that control heater operation. There was a jumper wire that connected the contacts of each relay in series between the two relays. That jumper wire did not seem to be sufficient to handle the current required to operate the heater and had melted during operation. The wire broke and landed on the relay coil, sending one leg of the 220VAC line into the low voltage side of the control system. One of the IC’s suffered noticeable damage from the failure, causing the control board to no longer operate.

The relays used on the control board allow a nice, compact control system within the spa. These relays, however, are barely sufficient to supply the needed current required to run the heating element, around 4.4 kilowatts at 220VAC. Designing my own control system will allow me to use components a little more durable for the task, preventing future failures.

Posted in Arduino Based Spa Controller, Projects | Comments Off

Supercharged 1UZ-FE: Travis Doherty’s rain gutter Ranger

I should preface this post with two pictures:

Eaton M122 on top of a 1UZ-FE

 

Travis Doherty's rain gutter Ranger

What you’re looking at is my friend, Travis Doherty’s Ford Ranger. After posting a few videos of this creation on YouTube I have received a few messages asking for a build thread on the vehicle. This post isn’t meant to be a detailed build thread, rather a more in-depth explanation of the power train on this vehicle. I don’t know much about the details in the chassis and suspension end of things on this project as I wasn’t involved in that part of the build. I have been involved in the power train development side of this project and can give those wondering a better idea of what’s going on in this monstrosity.

For the past seven years the truck has been powered by a Toyota 1UZ-FE engine. The engine is an all aluminum 4.0 liter V8 that was produced from 1989 to 2000 and is commonly found in Lexus LS400, SC400, and GS400 vehicles. In Travis’ truck the engine is mated to a GM TH400 transmission with manual valve body. Controlled by a MegaSquirt II engine control system, the factory distributors were removed in favor of coil packs. The 36-2 crank trigger wheel found in the later 1UZ VVTi engines is suitable for a factory wasted spark crank triggering scheme.

Mere months ago Travis needed more power out of the engine. Producing just over 200 horsepower at the wheels wasn’t enough to have more fun in the jungle gym of steel tubing. Don’t be fooled, desert trucks are considerably heavy. The truck was originally set up around turbocharging, having been formally powered by turbocharged 2.5 liter Ford/Volvo hybrid engine. Turbocharging the 1UZ was a consideration, albeit a difficult proposition due to the space constraints in the engine cage. Supercharging the 1UZ was another option, Travis being no stranger to boosting a friends’ 1UZ powered sand rail with an old Eaton M90 blower. Supercharging made the most sense. A positive displacement unit like the Eaton M series blowers provided desirable low end torque while fitting the space constraint requirements in the engine cage.

One of the best bang for the buck superchargers in the used market is the Eaton M122 supercharger found on the 07-12 Shelby GT500. Low mile pull-offs are plentiful due to the more desirable TVS-2300 aftermarket unit available for those applications. Although the GT500’s 5.4 liter engine is a bit larger in displacement to the 1UZ, the supercharger should still be plenty efficient at the same power levels, turning a bit slower at the blower’s rotors. It also doesn’t hurt having one of these low mile pull-offs in front of you, looking to be installed in something. Makes that decision easy.

Then it began. How to put an M122 on top of a 1UZ. Aside from how to put it on top, one must consider WHERE to put it on top. The M122 has a ten rib pulley where the 1UZ accessory drive has six ribs. There was a bit of fabrication work involved solving these problems. First, a hub adapter had to be machined that allowed a second crank driven pulley to be stacked on top of the factory pulley. A universal ten rib crank pulley manufactured by Vortech was used, stacked on top (in front of) the factory six rib crank pulley. This was achieved by making a hub that fit within the factory crank pulley, indexing on the threads normally used to attach a puller tool. The hub also sat on the crank pulley bolt flange of the factory pulley. This caused the crank pulley bolt to sandwich both crank pulley and adapter hub together. The hub extended to the end of the factory crank pulley with the bolt pattern that accommodated the ten rib Vortech pulley. By fitting an aftermarket pulley to drive the supercharger not only can the proper ten rib belt be used, but different size lower pullies can be used as well to change boost pressure.

Fitting the blower to the engine is simple by concept and challenging by execution. The factory 1UZ induction system has an upper plenum that bolts to a lower manifold. For this project the factory lower intake manifold has been retained. On top of the factory lower manifold is a custom fabricated adapter plenum built with such purpose and craftsmanship that one would have to look at hand made induction systems on WWII aircraft engines to truly appreciate what’s going on within this component. The supercharger mounts atop this box, the outlet of the blower funnels down to a 3″ outlet pipe. This pipe feeds into a front mount intercooler and then feeds back into a separate chamber within the plenum. This chamber feeds all 8 cylinders with boosted air. While you can’t see the adapter plenum in the picture above, you can see the outlet and inlet of the plenum that separates the outlet of the supercharger from the inlet of the engine to externally cool the charge air.

Now that we have a supercharged 1UZ, how do we make sure the engine doesn’t blow up? For now the 1UZ is being controlled by a MegaSquirt II engine control system. Running a factory crank sensor with the later 1UZ VVTi 36-2 reluctor wheel, this particular application is fired by a series of LQ9 ignition coils in wasted spark. The fuel injectors have been stepped up to 550cc flow rate by way of Series 5 RX-7 Turbo II injectors. The engine itself is internally stock, being pulled from a 1990 LS400 with 126k on the clock at the time it was pulled. The cylinder heads, however, received a bit of treatment. The valves were unshrouded, adding a bit of volume to the combustion chamber and lowering static compression ratio as a result. The anemic factory valve springs were also replaced with Crower springs to not only hold up better at higher RPM’s, but to accommodate aftermarket camshafts down the road.

The result? 333whp at 10psi of boost. 338 ftlbs of torque peak, with torque staying above 300 ftlbs from idle to about 5500 RPM where the factory cam shafts fall off. Keeping in mind that a pre-runner drive train has close to 30% loss, this same engine package in a street car drive train would be legitimately close to 400whp. Torque everywhere, and that’s what counts.

Supercharged 1UZ at 10psi boost

With that all said, hopefully that answers SOME questions that most of you out there have to ask. To date, here’s the collection of YouTube videos I have of Travis’ truck:


 

Posted in Projects | Comments Off

Rustang gets Toyota power – 2JZGTE VVTi

In recent times I’ve received a number of inquiries about the Rustang and have come to the realization that I haven’t yet told the most recent story about that project. In early 2012 I announced on forums and social media the retirement of my 2JZ powered LOLvo due to increasing number of mechanical failures. During that time I had expressed interest in swapping the 2JZ power plant from the LOLvo into the Rustang. I had started documenting the swap on Brickspeed and never finished my writings. Due to slow traffic on that forum and the interest to continue my blogs on my own site, I figured it was finally time to sit down and tell the story about the Rustang’s new heart.

As profound as it may sound, this project is literally built around a flywheel. I wasn’t incredibly serious about doing the swap in the Rustang until I had a transmission and clutch solution figured out. Unlike the LOLvo, the Rustang was to stay manual transmission. The Getrag V160 found in the MKIV Supra is exceedingly overpriced for its age. A stout transmission no doubt, I just couldn’t bring myself to spend thousands of dollars on an old, high mileage transmission. Additionally, clutches and flywheels for that transmission are also incredibly expensive. The R154 and similar AR5 transmissions are commonly used and less costly solutions for a manual transmission behind a 2JZ engine, and the best candidate for this swap. I preferred to find an AR5 transmission, a modern and updated replacement for the R154 that can be found in both the Chevrolet Colorado and Pontiac Solstice / Saturn Sky platforms. My searches came to a screeching halt sometime mid April 2013 when I saw a facebook post from my friends at Buchka Engineering had developed a button flywheel for the Volvo red block engines that accommodated 7.25″ race clutched . I asked Karl and Alex Bucha if they were interested in making a similar flywheel for my application. Sure enough they were and I began to take measurements to come up with a flywheel design.

Having such a flywheel opens up a plethora of drivetrain options for my engine. To make this project even more exciting, the A340 automatic transmission has a removable bell housing that has a large pilot opening that’s true to the centerline of the crankshaft. With a button flywheel, a race clutch, and the A340 bellhousing, the sky was the limit for transmission options. For the beginning of this project I chose to continue using the T10 transmission that was already in the Rustang. To design my flywheel I had to know a few things:

  • What is the depth of the A340 bell housing?
  • What is the distance from the A340 transmission flange to the crankshaft flange?
  • How long is the T10 input shaft from transmission flange to the end of the splines?
  • How long is the pilot shaft past the splines on the input shaft?
  • What is the installed height of the clutch pressure plate?
  • What are the dimensions of the clutch when mounted to the flywheel?
  • How thick is the flex plate?

All of these measurements were critical in determining the dimensions of the flywheel. To make the project slightly more complicated, there was a maximum thickness to the flywheel. I had to come up with a drawing that took the design limits of the flywheel into consideration while trying to maintain proper engagement of the clutch discs to the input shaft, and other considerations. After some measuring, drawing, measuring more, and drawing, I had come up with a sketch of what I wanted for a flywheel. Not having any experience with making a technical drawing, I must thank the Buchka brothers for having the patience to turn my chicken scratch into a usable drawing in order to create the final product. A few weeks later, June 2013 I had the pleasure of meeting Karl and Alex for the first time in person, delivering the flywheel that got this project up and running. This flywheel, hand made, is a work of art. I almost felt bad installing it in this application. But, this is the piece that started it all for this project:

Buchka Engineering button flywheel. The entire project created around this beautiful work of art.

Now that I have the flywheel, it’s time to figure out how to mate the engine to the transmission. The first step was to mount the clutch and flywheel assembly to the engine and verify measurements that I had produced from technical drawings while designing the flywheel. The first issue I ran into was piloting the flywheel to the engines crankshaft. When I was originally designing the the flywheel I had used the flexplate shim to extract measurements for both the crankshaft bolt pattern and centering pilot diameter. While the bolt pattern measurements were dead on, I failed to observe that the flexplate shim was a rather loose fit to the crankshaft and the measurements I specified created excessive run out when mounting the flywheel to the crankshaft. Furthermore, the flywheel pilot on the crankshaft doesn’t protrude that much from the crankshaft flange. With barely enough room to center the flexplate, there was only about .040″ of pilot left to center the flywheel. Even if the crankshaft pilot ID was correct on the flywheel, there still wasn’t enough meat on the crankshaft pilot for me to comfortably center the flywheel. A solution had to be made for this problem. However, while I was thinking up a solution for that problem I pressed on with verifying my other measurements. Another issue I ran into was the pilot shaft on the transmissions input shaft was rather short and would not extend all the way into the pilot bore of the crankshaft. This problem was a blessing in disguise, leading me to the solution for centering the flywheel to the crankshaft. Taking a few more measurements, I drew up a pilot adapter. This adapter would press into the pilot bearing bore of the crankshaft and extend to the end of the flywheel. This provided one solution to all of the problems I had at this point. This adapter would match the pilot bore of the flywheel, centering it to the crankshaft. The adapter also housed the pilot bearing for the T10 input shaft and located the bearing further out from the crankshaft, allowing proper bearing engagement.

 

Pilot adapter prototype spun from aluminum.

Test fitting prototype pilot adapter.

Final product with pilot bearing developed from the prototype

Flywheel centered, pilot bearing spaced out!

Creating this solution was a proud moment for me. This was my first time doing any sort of precision machining. Prior to this I had very little knowledge in operating a lathe and without any instruction, taught myself how to use one to make this component. Knocking out those problems, I can continue on. Now it was time to permanently mount the flywheel to the crankshaft.

Next was mounting the clutch assembly to the flywheel and bolting the bell housing to the engine block to verify more measurements. In this exercise I needed to find the following measurements:

  • Distance from bell housing transmission flange to flywheel surface
  • Distance from bell housing transmission flange to each end of clutch plate hub splines
  • Distance from bell housing transmission flange to installed height of pressure plate fingers

Finding these measurements ensured redundancy in my previous measurements during the brainstorming stage of the project. These measurements helped me determine how thick the transmission adapter plate could be, and to make sure that the adapter plate would be thick enough. These measurements would also play a role in properly setting up the clutch hydraulics, but that’s later on in the project. The clutch I’m using for this project is a QuarterMaster PRO 7.25″ triple disc race clutch. It had previously been used in a NASCAR application. The big difference between this clutch and other race clutches is the way the floater plates are captured in the clutch assembly. Unlike plates that float between the clutch mounting studs, the QuarterMaster PRO series clutches use a drum with gear teeth along the inside diameter that captures the floater plates. The drum can be seen in the pictures above, the clutch assembly below:

Quartermaster PRO 7.25" clutch discs and floater plates

Taking measurements with clutch and bell housing fitted

Now that all of my measurements have been verified, it’s time to make the adapter plate. This was another self-validating adventure in itself. Much like the pilot adapter had been my first time doing any sort of precision machining on the lathe, the adapter plate was the first time I have ever done precision machining on the mill. And just like the pilot adapter, I made a prototype adapter plate before making the real thing. I never made any drawings for the adapter plate, I just shotgunned this component. The idea was quite simple: Machine a step in the plate that fit in the centering bore of the bell housing and machine a bore in the plate dead center to the bell housing bore that centered the bearing housing on the transmission. While the lathe probably would have been a better job for this task, the lathe I had access to wouldn’t accommodate the size of this work. The vertical mill combined with the use of the rotab will do. It was a neat experience making the adapter plate. Machining the plate itself took only thirty minutes. Setting up the tooling and verifying its all true, however, took a few hours. After making the prototype plate out of .500″ tooling plate I found that the plate was too thin where it mated to the bell housing and also made a few changes to the locations of some bolt holes to better accommodate the hydraulic throw out bearing.

Prototype adapter plate on the mill with T10 bearing housing

Prototype adapter plate fitted to bell housing

Test fitting transmission to engine with prototype adapter plate

Laying out the measurements and drill locations on the final plate

Final design adapter plate in the mill

Final product adapter plate

Ford T10 transmission adapted to Toyota A340 bell housing

Now that I had a T10 transmission that bolted to my 2JZ engine, and a clutch that drove the transmission, it was time to figure out the clutch hydraulics. I acquired a QuarterMaster hydraulic throw out bearing made specifically for this clutch. Mounting the throw out bearing wasn’t at all difficult. The throw out sleeve on the transmission bearing housing had to be turned down slightly to accommodate the new bearing. Additionally, the throw out bearing assembly simply floated on the transmission bearing housing sleeve. Originally intended to be used in retrofit applications, the throw out bearing has a pocket to use a clutch fork pivot ball to locate the bearing. In my case, I simply used a bolt threaded into the adapter plate to locate the bearing. Using the measurements taken previously, I had to figure out the setup height of the bearing itself. I found that the throw out bearing needed to be mounted a half inch above the surface of the transmission bearing retainer. Instead of machining some trick adapter plate, I simply chose to purchase a few nuts and long bolts that replace the bearing housing bolts. This allowed me to precisely adjust the installed height of the bearing. Once the bearing was mounted, and setup height dialed in, the only thing left was to cut a small hole in the bell housing to allow the pressure and bleeder lines to pass through.

 

Turning down bearing housing sleeve to fit the hydraulic throw out bearing
Test fitting and spacing hydraulic throw out bearing
Hydraulic throw out bearing fitted and spaced
T10 transmission mated to 2JZ engine

And there it is. A Ford T10 transmission mated to a 2JZ engine with a functioning clutch. What a fun and incredible learning experience it was taking an idea drawn on a napkin and producing a functioning example. Before the engine and transmission could be placed in the car, the engine bay had to be prepared. The Rustang’s engine bay was pretty dirty. Years of paint and rust and holes from brackets and the like. As bad as the rest of the car looked, I wanted to make the engine bay look good. My father spent a lot of time stripping the old paint, blending holes, and removing rust from the engine bay to make it look better. I also figured the engine needed to be a little more “flashy” than the flat black theme in the LOLvo, so I decided to paint the spark plug cover as well.

 

Stripping years of paint out of the engine bay

Painting the engine bay

New color for the spark plug cover, Ford Emerald Green. Text and logos stripped and blended.

Beyond painting the spark plug cover, the only other tasks needed to be carried out before mounting the engine in the car was to freshen up the bottom end and make the MS3X wiring harness. With a little over 200k on a factory bottom end I felt it was best to put new bearings in the engine. During this process I had intended to reused the factory rod and main cap bolts. However, during the angle torque procedures I found some of the hardware to be considerably softer than others. Not wanting to take a risk on used hardware, my bottom end also received ARP main studs and rod bolts. The oil pan used on this engine for both the Rustang and LOLvo projects is a front sump configuration from an Aristo, same as the GS300 and IS300. Supra and SC300 use a mid sump configuration. The pistons and top end of the engine I left alone. 5% cold leak down across the board was convinced me I didn’t have to fix things that weren’t broken. I also decided to make the entire ECU harness out of the car on this project. I normally build the harness in the car, however, due to a tight fit in this engine bay I felt it was best to install the engine with the wiring harness.

Freshening up the bottom end with new bearings and ARP hardware

Wiring the engine on the stand

Now came the fun part. Putting the engine in the car. From the start I had anticipated the possibility of having to cut the firewall to move the engine back. When the Rustang was powered by the 351 Cleveland, the car had a 57% front weight bias with me in the car and a full tank of gas. The 2JZ engine is by no means a light engine and while it may not be as heavy as a full iron 351c, it was considerably longer and therefore would have a greater polar moment. My goal was to get the car to a balanced 50/50 weight bias, even if it meant cutting the firewall. Before getting too carried away, however, I placed the engine in the engine bay with as many as the accessories attached to simulate the actual weight of the engine and corner weighted the car. I was amazed at what I found. With a full tank of fuel, myself in the drivers seat, and the engine up against the firewall the car was at 51% weight bias to the REAR and was over three hundred pounds lighter total weight than with the 351C. I was pretty excited that I didn’t have to cut the firewall. The project now became as simple as mounting the engine and carry on. This simplified the project immensely. Moving the engine up against the firewall moved the transmission back about three inches from it’s natural habitat, however, the factory crossmember is rather long and mounts the transmission at the front of the member. Simply slotting the transmission mount holes allowed the transmission to move back while retaining the stock crossmember. The shape of the oil pan fits perfectly between the sway bar and the shock towers. Mounting the engine was as simple as purchasing brand new small block Ford engine mounts and making adapter brackets to allow the 2JZ to sit on the factory mounts. Mounting the engine in the car was a task that took mere hours. Almost as if the engine was meant to be there in the first place.

Engine test fit and centering

2JZ to SBF mount bracket. Allows 2JZ to mount directly to small block Ford engine mounts

Engine mounted on brackets

Drivetrain mounted

Factory T10 cross member still in use

After mounting the engine it was all down hill from there. Very little wiring needed to be done since the engine harness was already on the engine and the Rustang had already been MS’d on the 351c, so it was just a matter of plug and play. The cooling system had to be plumbed, exhaust system made, and induction system plumbed. The exhaust system was pretty easy, the down pipe setup from the LOLvo somehow just fit in the Rustang. A few feet of straight piping and the old muffler from the Rustang was all that was needed to make the exhaust. A new radiator was chosen for this project, a GM style Summit turn around flow radiator. For the price, it was a nice piece. However, there was no divider on the feed/return tank which would render the radiator useless. A simple cut with the bandsaw and welding a divider in fixed that problem, but I wonder how many people overlook that issue? Because of the radiator configuration I had to custom make new inlet and outlet necks for the engine since the radiator now has the inlets and outlets on the same side. The induction system ended up being easy as well. A kind donation from my room mate got me an old Spearco core from a first generation DSM intercooler kit. Although the factory grill no longer fit due to its size, the inlets and outlets fit perfectly between the radiator.

Fitting the new radiator

Fitting the intercooler

Cooling system plumbing and turbo outlet plumbing

Intercooler plumbing

Intake pipe fabbed, complete engine bay

So now what? I have a 1968 Ford Mustang fastback with a 2JZGTE VVTi engine. Time to drive it, I guess.

Posted in Rustang - 1968 Ford Mustang | Comments Off