A lot of progress was made over this past weekend, although it doesn't look like much in context of this list...
Update MS to a later version of code with CAN supportReinstall & confirm its working, set static timing with timing lightConfirm Arduino controller is reading CAN signals correctlyPackage controller, screen, CAN module & 5V regulator in idiot light clusterIf there is room, put the switching transistors in cluster, otherwise put them down with the manual switches and control knob in ash tray- Finish gauge wiring
- Sort the battery mounting - I'd like to use the stock mount but will probably need to run the IC water hoses slightly differently
- Plastic block-off panels for holes around IC heat exchanger
- Reinstall underbody brace, wheels, bumper, hood (may need to trim one of the hood braces)
- Typical shake-down & new engine build break-in driving
The first big step was getting CAN communications working between the Megasquirt & Teensy 3.2 controller using a Waveshare CAN transceiver, You are not allowed to view links.
Register or
Login. For a while, I was getting no communication whatsoever... dead silence on the line. It turns out that all the coding & wiring I had done was correct, but the library of CAN commands that it was referencing was out-of-date and while all the commands themselves were there, the order that arguments were passed to them had changed, which meant that my code was initializing to the wrong speed and looking through a filter which removed all the MS's messages. A lot of troubleshooting later, and everything was working as intended. Since that was the last bit of the project that was un-tested, I could start the miniaturization process to try to fit two breadboards worth of prototyping stuff into the warning light cluster.
First was the display - I had already done some minor filing of the edges to make it short enough to fit, but it was still as large as physically possible while still fitting where the clock had been, so everything else needed to fit within it's footprint behind it. Everything else consisted of:
- Teensy 3.2 controller
- Waveshare CAN tranciever
- 5V voltage regulator
- 3 TIP120 NPN power transistors (the Lexus relays were drawing too much current for the much smaller 2N3906 transistors to comfortably handle? - they were rated for 200mA but did not work in practice)
- Various resistors & capacitors for setting screen contrast, thermistor input ranges, output current limiting for the TIP120 transistors
- Wiring connections for stranded-wires to run to external harnesses for the control knob, outputs, inputs, power & ground, etc
So... lots to pack in. I started with a general Radioshack IC prototyping board that I had laying around since it was laid out with two "lines" running the length of the board for regulated 5V and ground, as well as pads coming outward with 3 holes for each pin of the Teensy controller chip. It also had a row of 2-hole pads along the top and bottom which would be useful for the header to attach the screen. However, this board needed to be trimmed down a bit to fit within the cluster and behind the extents of the screen - this is it shortly after starting after soldering down the connections for the screen along the top (power, ground, various data lines, back-light LED colors, etc), then the voltage regulator on the right side, one of the TIP120 transistors on the left, the screw-connections from the CAN transceiver board on the lower left (the board itself is mounted underneath this proto board), and a bunch of resistors over capacitors for the inputs in the lower right. The second transistor would be going directly to the right of the first transistor, but wasn't soldered down yet to give better access for soldering more components.
The third transistor is on the back-side of the proto board, as is the Teensy controller itself and the Waveshare CAN transceiver. The Teensy was on the back so that I could solder on the opposite side of the board directly on the copper pads so I would have decent access since it would be mounted with a set of headers (so the controller can be removed without soldering), and to keep it out-of-the-way from most of the other soldering. Here it is just stuck in place for reference without the headers. The height of and access to the screw-terminals and size of the CAN transceiver dictated that it be on the back as well, and I just ran out of room on the front for the last of the transistors. The three wires here are the outputs to the relays for fan speed and IC water pump. This really highlights how much forethought really needed to go into placing all the components and trying to ensure access to get everything soldered down.
And the side view, without the headers for the Teensy controller or the screen in place. The screen would go on the bottom of this stack the way I'm holding it, and the Teensy would be lower than it is currently positioned with the headers. The micro-usb programming cable is currently attached and sticking off to the left - I want to keep this accessible for programming, but it won't be installed with this in place.
In these pictures its a bit further along - the headers are installed (I had to trim down the ones for the Teensy so it would sit comfortably between the screen and the prototype board), the screen is on and trimmed a bit, and the proto board is more complete. Filtered power from the cluster has been wired to it, but sensor input wiring and control knob wiring hasn't been attached. Also, you can see the power filtering circuitry to give a more steady 12V and switched 12V for the gauges and this project, now reconfigured and wedged into the spot for the left-most lights. The convertible doesn't have a hatch warning light, so these were empty already; I just had to hollow out the area to wedge these components into.
Since the rotary control knob & button combo that I am using to control the screen couldn't be mounted up next to it (no space, plus I don't want to be reaching all the way up there for it!), I needed to find a new place to put it. The ashtray seemed like a good candidate, especially since it gets to hot to stick a phone in anyway. Since I would be taking up that space, I decided to throw a few manual switches for the outputs in there, and some LEDs to show if it was on (whether by the manual switch, the controller output, or the thermoswitch for the fan speeds)
And now, with the proto-board finished, and all the various wires added. I still need to carefully consider how these are all going to be routed out, since they bulk up the entire package a little bit more and prevent it from sitting nicely.
The switch still needs to be mounted in there with a cover panel, but all the connectors fit through the existing hole in the side. It will also have the calibrate & status LED for the LC-1 wideband controller mounted on that panel.
Here it is, powered up on the bench. The inputs and outputs aren't connected, nor is CAN since those are all in the car, but this at least gives a taste of what it'll be like.