Announcement

Collapse
No announcement yet.

JT's Custom Instrument Cluster Thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    JT's Custom Instrument Cluster Thread

    Hey everyone,

    To complement my ongoing motor build I have also been working on a custom instrument cluster design. Over the last six or so months I have been spending a fair bit of spare time working towards a replacement for the e30 instrument cluster that essentially achieves the following:
    • Maintains a primarily analog look and feel.
    • Connects up to my MS3 over CAN and significantly reduces wiring requirements.
    • Implements a fancy rev-matching assist scheme so I always sound like a pro. Obviously this is by far the most important point.
    Strictly speaking, the design I am currently finalizing also accomplishes a few more things, mostly focused around customization and adjust-ability as my e30 shenanigans continue.

    At a high level, the PCB design includes the following:
    • Seven analog gauge pods (six 'small' and one 'large'). For reference, they are sized almost identically to the existing e30 large and small gauges.
      • The large gauge is intended as a tachometer. Smaller gauges will be providing whatever information I desire, but at this point in time CLT, MAP, oil temp/press, etc. are the sorts of things I will be assigning to them.
    • Backlit ring of multi-color LEDs around the central gauge, intended to provide at-a-glance information about ideal engine speeds for rev-matching up and down gears. Basically I will be taking information about the current gear lever position, clutch pedal position, engine speed and wheel speed to display various obnoxious colors on the tachometer indicating where the sweet spot is for down and up shifting into available gears.
    • Individual multi-color backlighting for each smaller gauge, as well as various points on the PCB. This basically means that aside from the 7-segment speedometer, I can change the cluster backlight color to suite my mood.
    • A 4 digit 7-segment LCD that is intended for use as a speedometer. This will sit 'inside' the tachometer.
    • A grey scale multicharacter OLED for other bits of information, such as vehicle odometer, a clock, and any important status bits from the ECM.
    • A mounting point for a U-BLOX module (specifically the NEO-M8U). Been working with this guy a fair bit lately and it would be relatively straightforward at this point for me to setup and use to provide gps, and more importantly, vehicle acceleration information. Realistically this isn't the best position for the module (vehicle center of mass or above rear axle would be ideal), so we will see if I actually use it or not (but eh, I had a free UART and some empty space, so...).
    • I also have roughed out a set of adapters (I am still flip flopping a bit on connector setup) that will support an I/O adapter board mounted to the back. The idea with this is that if there is enough interest I can fabricate up a small PCB that includes the stock E30 connectors and some minimal signal conditioning electronics (for whichever model) so you would theoretically not be stuck running an MS3 and CAN bus to use the cluster.
    • 3 separate CAN bus connectors.
    • Stand alone real-time clock.
    • Lots of single LED indicators. You can see them labeled as LEFT TURN/RIGHT TURN/HIGH BEAM/etc. in the pictures below, but the reality is they are completely mappable so don't get attached to the labels.
    • There isn't a peizo element or any relays, I am on the fence about whether I should add this because right now it cannot even beep at you.
    • I don't have an ambient light sensor on the board, but this data will be coming in over the CAN bus and can then be used for automatic brightness adjustments.
    • In terms of components, *almost* everything is automotive rated. Multicolor LED's and displays are a bit of a pain in the ass, the temperature ranges on them make me uncomfortable (for reference, I live in Canada, so -30C is a real threat).
    • Some other goodies that may or may not make the cut after the prototyping stage.
    • Everything is being driven by a texas instruments TMS570LS3137 processor, which probably doesn't mean anything to most people but I decided to include that tidbit anyway. All inputs and outputs are piped through the MCU (microcontroller unit), there is a collection of analog and digital (both steady state and PWM/Pulse Train) capable inputs exposed. Since everything goes through the MCU, theoretically I can program the board to light up like a christmas tree and shake all the gauges in fury if you blow a shift, or more realistically change which LEDs and gauges display which data depending on how my e30 build evolves.
    In terms of completeness, the majority of the PCB and schematic design is done, pending some review and adjustments. I am currently finalizing external CAD, so I don't have much to show at this point, but really the plan is to basically sit inside the existing e30 cluster space, possibly slightly modify the existing plastic enclosure or 3d print up a new enclosure, and laser cut or waterjet a series of faceplates for the backing and for each individual gauge (this is necessary because the e30 gauges are all slightly tilted towards the center, something I like and would like to replicate in my design). Beyond that, I will be shortly ordering a proto run out of china then hand assembling a board. In terms of risk, the number one issue is very likely to be my powersupply setup... I am not an EE and it is likely that I have some issues because I essentially just copied various application examples. Overall I aim to have the board up and running and be well into firmware development within the next six months.

    Anyway, here are some screenshots for those that may be interested. Currently wrapping up the EDA portion of the work, and I have some pretty pictures to show (note that some silkscreen labels and such need a final cleanup pass... I may change connector footprints so these aren't all done yet). If there is any serious interest from any resident EE's I will be happy to put up a schematic (try not to make too much fun of me, I write firmware for a living, not design PCBs):

    Front and back rendered PCB views (note the lack of mounting holes and some connector models. Also, stepper motors will end up mounted slightly 'bent' so they will probably stand off from the board and bit and point slightly inwards. The speedo on the bottom right is cutoff after PCB production and mounted overtop the tachometer on the connector labeled 'speedo/lcd').







    And I included a few EDA snapshots so you can see the mess of wiring in all its glory. Note that internal copper planes are hidden (board is 4 layer).
    top:

    bottom

    both. Sweet, savory chaos


    In terms of actual costs, BOM is running approximately ~400 Canadian at the moment, in very low volumes and fully populated (using slow turn PCBs from china, prices based on their qoute estimation tool). This may change a bit after prototyping, and does not include assembly, which realistically if mass produced would be a pain in the ass because the board is double sided. If I do get everything working and firmware development goes along fairly smoothly I would probably be willing to let the design and firmware go cheaply, but we will see. First and foremost I want to get it running on my build.

    #2
    Where do I submit my order?
    If it's got tits or tires, it's gonna cost ya!

    Comment


      #3
      Very elaborate design, good work. Regarding power supply, I dont think you will need an EE for that, just use a regulated DC to DC power supply. Your design looks a bit tall to fit into the E30 dash though, I assume you have already tried to physically fit it? Seems a bit overkill for your average E30 owner but I can see a market for this updated digital design.
      Owner - Bavarian Restoration
      BMW and European Electronics Repair and Restoration
      www.BavRest.com
      My Feedback Thread
      Our Facebook!
      Follow our Instagram!

      Comment


        #4
        Originally posted by Gregs///M View Post
        Very elaborate design, good work. Regarding power supply, I dont think you will need an EE for that, just use a regulated DC to DC power supply. Your design looks a bit tall to fit into the E30 dash though, I assume you have already tried to physically fit it? Seems a bit overkill for your average E30 owner but I can see a market for this updated digital design.
        The PCB itself is almost the exact footprint of the cluster PCB from my 325is (a hair smaller, and I haven't rounded the edges. This will get fine tuned after I do a little more mechanical work and bring in a prototype). It probably seems tall because the bottom area with the indicators for oil pressure and so on is included along the bottom.

        With regards to the power supply, I think it is a bit more involved than that. In this case, specifically, the following is used:
        • 12V power comes into the cluster, along with an ignition signal from the key. Note that '12V' is really ~5-16V nominal, with expectations of momentary surges exceeding 200V.
        • Power comes into a Texas Instruments LM5060-Q1. This is a high side protection controller that has been wired up to provide controlled rise times, under voltage lockout, over voltage protection, reverse polarity protection and some other tidbits (feel free to lookup the datasheet). This essentially acts as a 'smart fuse', if you will. I agree that this could probably be replaced with a fairly expensive DC-DC.
        • There may actually need to be additional complexity - if I cannot run the cluster during cranking due to low voltages I will need to charge it off the battery then 'sleep' until crank occurs, relying on stored power (in bulk storage caps) to run at least the tachometer.
        • After the protection IC, power is split into the following:
          • 15W DC-DC, 12V to 5V. This is used to power the LEDs and stepper motors. It is a major cost driver in the design, and price wise is currently similar to the processor. Relatively high power is needed because I am uncertain about final realistic LED current consumption to be visible in bright sunlight.
          • 12V into a texas instruments TPS65381A-Q1, which is a multirail 'safety relevant' power supply designed to be used with the TMS series microcontrollers. This provides the following:
            • Additional power protections and startup sequencing capabilities needed for the MCU. TI's hercules series are very nice micros (IMO) but they are also quite complex, with redundant dual cores and lots of fancy error protection logic. Unfortunately this drives cost in other areas, like power supply.
            • An external watchdog. This will be used in addition the TMS internal watchdog to provide additional protection against firmware bugs. I am aiming to be able to reboot and recover within less than a second, which to my mind is key for the instrument cluster that will be providing almost all vehicle information, including oil pressure warnings. Ideally there will be no firmware bugs and it will never happen, but realistically I am one guy working on this in the evening so... better safe than sorry.
            • A 5V rail (unused), another 5V rail (used for MCU analog), a 3.3V rail (used for MCU I/O and various on-bard ICs) and a 1.2V rail which is used for the processor core.
        • There is also a fair bit of twiddling that goes into how shutdown is handled - I.E. when the key is turned off I don't just want everything to suddenly die, there needs to be a brief hold-off where I have room to ensure things like the internal odometer count is properly saved. Chances are good I will not actually need this extra time, but sometimes saving data to flash can take longer than expected (especially over automotive temperature ranges).
        • On the proto board I have a bunch of current measurement IC's included, which make routing generally more complicated. These will either be totally removed or DNP on the final product - I just need them to optimize power consumption during the design phase. My E30 battery dies enough on its own accord, I don't need a bug in the cluster design drawing extra power and helping it.
        That is a high level overview of why I am willing to be the powersupply components will take minimum one respin. Realistically for prototyping I can and very possibly will end up subbing lots of things out for a fixed 12V into the TPS65381A-Q1, so hopefully that isn't too painful (app notes were fairly clear on setup for it though, big concern is the impact my routing and FET selection will have on the 1.2V stability for the VCC core).

        Comment


          #5
          This could be amazing!

          I was up above it, Now I'm down in it ~ Entropy - A Build thread.
          @Zakspeed_US

          Comment


            #6
            Whoa. Looking forward to seeing where this goes.

            Comment


              #7
              Figured I would push out an update while we are all struggling through this wonderful virus...

              Board is basically done at this point, pending some changes that may arise in a review I have an EE friend of mine doing.

              In terms of changes since the last post, I have ended up implementing the stock C1/2/3 connectors, currently all wired to test points, so that I can easily connect and disconnect the prototype. Wires will be routed from the test points on the connectors to the digital inputs on the processor, likely after a bit of additional signal conditioning. This will allow me to easily prototype up various supporting circuits before incorporating them into the final design. Remember, one of the main goals of this project is full digital control - All the signals will be brought in and then can be mapped to whatever outputs are desired. Probably won't actually write the code to do it, but you could even theoretically have one of the gauges tick left or right when you turn on the turn signal.

              I have attached a couple of renders of the board front and back. Haven't got any faceplates done up yet, it is... hard... moving from a drafting program like autocad to some of the free offerings out there. Also, not really a rush. There is a lot of firmware to write, nevermind getting the actual PCBs in hand with half the world shutdown.



              The connectors are not in the *exact* same spots, but I believe more than close enough to match the stock wiring harness and likely variations on different vehicles. Also looks like I swapped the white and yellow connectors on this render (I know, everything is grey, so ignore that minor detail and pretend they are in the correct positions.) There are also a few other connectors: I have a redundant power connector (for bench testing), some additional I/O connectors on the side which will probably get removed, a GPS antenna connector and some other debug/programming connectors.
              Final revision is intended to be programmed entirely over the UART via FTDI/USB translation; this means it should be fairly easy to connect a USB cable so that one can hook up a laptop and change parameters such as speedometer/tach scaling, enable auto brightness, visible LCD display info, etc. as well as any firmware updates. I may also switch from a soldered 10-pin to a mechanical socket for the digital speedo, depending on how I design the faceplate and whether or not I want it easily removable.

              Comment


                #8
                Nice project I can appreciate the work behind it, looking forward to a working prototype 8^)
                My M20 Frankenbuild(s)
                4 Sale - Fully Built TurnKey Megasquirt Plug and Play EMS

                Comment


                  #9
                  Mechanical rough-out has begun. Already noticed a couple of issues with PCB layout, specifically around indicator position, so those have been adjusted.

                  Gauge position will also be slightly adjusted to get a bit more meat on the edges and allow for better chamfer, probably get to that tonight. Played around a bit with some faceplate creation, in the images below you can see some (very rough) examples of how they will look, not including the transparent white backing diffuser. Faceplates themselves are easily swappable, basically like stock: just pull the needle and remove two screws.








                  Comment


                    #10
                    Awesome!

                    Comment


                      #11
                      Need to take a break, so I figured I would throw up a few more renders quick and a brief status update.

                      Mechanicals are essentially done on the PCB at this point, maybe hole positions will need to be tweaked but currently it *should* fit into the stock cluster PCB position. Review of some of the power stuff is ongoing, hopefully my friend has that wrapped up in the next couple weeks. A few other things need some cleanup, and I will probably convert a couple of the LEDs in D42/41/40/39 positions to a couple push buttons or something for setting trip/odo/race timer whatever, but overall I am closing in on ordering the first prototype PCB run.

                      More eye candy below:











                      Comment


                        #12
                        Is it too late to add a gear display?

                        Comment


                          #13
                          Originally posted by mutty View Post
                          Is it too late to add a gear display?
                          No - the only issue is where I would put it (my current intention was to flash gear in speedo on change). I have some free bandwidth on the digital communication bus that is used for the LCD at the bottom, as well as another free bus that is doing nothing - this could easily be used to drive a secondary display.

                          I think the biggest challenge would be mechanically where it needs to go. If I was going to add a display for current gear and keep everything else I would probably lean towards a 1 or 2 digit 7-segment similar to the speedo (which, to be clear, can be re-purposed to either permanently show current gear or flash the current gear on change). As for mounting, possibly on the other side of the tach, although that would feel like it is getting busy. Alternatively it would be easy to simply not populate one of the smaller gauges and replace with a face-plate that mounts a display of some sort. Mechanically you could pick off the mounting holes for the stepper motor, and bring data/power to it by wiring off one of the spare bus connectors. This is something I can give more thought to if there is interest.

                          Comment


                            #14
                            So, a bit of an update here.

                            I spent some time reworking the design, primarily due to cost and fabrication considerations. The big issue with large PCBs is they get expensive fast, and the big issue with my instrument cluster PCB was that it was large. And primarily empty space. So to that end, I decided to split the project into multiple boards. These include:
                            • A relatively high density, primary PCB that acts as the brains of the operation, in addition to providing power and all that good stuff. This is the primary dial gauge.
                            • A breakout board that acts essentially as a backplane PCB with larger connectors and possibly a small display mounted to it. This should be imagined as a rectangular PCB running along the bottom of the cluster, that includes E30 factory connectors and the LCD display.
                            • Simple PCBs that can plug into the backplane, either directly or via wired connectors, which act as other individual gauges.
                            The big advantages of the above are flexibility and reduced cost (like a third, if not less, for the bare board. Out of house assembly costs drop dramatically as well, and the remaining cost to assemble a simpler, slightly larger backplane board is still better than one massive board with a high density area, primarily due to components all being on the same side) - different gauge configurations are relatively straightforward to do, and at most require re-routing the relatively simple backplane PCB. And yes, this supports either a mounting orientation identical to the factory or (my personal preference) a DTM style sideways tach orientation.

                            Some other minor notes, I broke out one of the stepper control signal groups to the 20 pin header for the 7-segment LCD board. This means that it should be possible to actually mount a separate stepper motor there and drive a gauge, similar to the mileage indicator on an e46 cluster, for example. This PCB shows the 20 pin as populated, in the end those will be holes and the daughterboard will mount almost to the main PCB.

                            Anyway, I have actually finished off the primary controller, which is where the vast majority of the work still needs to be done software side. I am currently planning to do a final quick review this coming weekend, then getting some PCBs manufactured starting next week. This will let me get moving on the firmware side of things, as well as debugging all the complicated hardware bits, while bringing up the base board (which includes the logic necessary to interface with the E30 signals) in parallel.

                            Still not very exciting, but here is some more renders:
                            Click image for larger version

Name:	v2_m_0.png
Views:	1340
Size:	186.5 KB
ID:	9951769

                            Click image for larger version

Name:	v2_m_1.png
Views:	1328
Size:	187.1 KB
ID:	9951770

                            I need to do a bit more cosmetic cleanup on the schematic, but if there is interest I can throw that up too.

                            Comment


                              #15
                              this is really cool

                              Comment

                              Working...
                              X