01/31/2015 at 07:12 •
Got in a dedicated CAN bus arduino shield, so I'll make the next steps using that (and the existing working code on the net).
The power comes from a "PC - like" supply that feeds 5V and 12V to a molex connector. ECU is a Continental / Siemens M3C ecu bought off eBay.
Top board ties together the grounds and that's the only link to what's below. The board is an arduino-branded "prototype shield" that I use for tying together random things. The top shield accepts the 12V and then sends it to the red wire. The switch sends 12V to the white wire and simulates when the ignition switch. And this 3 pin keyed connector also supplies ground to the ECU, where it splits into the two required grounds (female clips) and the alligator clamp for grounding the case.
CAN shield is from Seeedstudio and has two female headers plugged into the green CAN connector: as shown, it's only attached to the ECU and the separate header allows this to be inserted in between other nodes (say the ECU and diagnostic equipment).
Arduino aka the board on the bottom, is actually an Arduino Uno. I'm using it solely because there's so much example code based on it. Once I've figured out what I want to do, I'll move on to other platforms.
This is the sketch I started with but I'm pretty sure it was ignoring unknown PIDs plus it probably wants the legacy 2.x python as it didn't work on the latest version. I'll try Seeedstudio's sample code next.
01/29/2015 at 22:42 •
We've got a chipKIT Max32 which has two CAN controllers inside its PIC32 processor. I finally have my hardware set up on the CAN bus in such a way as to not interfere with our Stupidly Expensive Efi Tools ( SEET ) talking to a Monster 696's diag port. This is actually kind of cool because it took more than a few attempts to make this happen. I was getting worried because every attempt previous to put my hardware on the bus would result in comms failure in SEET's software. I read the mcp2551's data sheet and it suggested a 60 ohm resistor for testing ... and the 80-something ohm resistor was the 1st one I grabbed within 50% of 60 ohms...
I still haven't convinced the chipKIT to actually sniff traffic, but this was the 1st configuration where the SEET could still communicate with the M696 while the chipKIT hardware was connected to the CAN bus. So that's some progress at least. It's also the 1st time my test software said "can bus modules initialized". Now it's back on the software to finger out how to make the CAN stuff in the PIC32 work.
In a parallel development, we got in a NXP dev board with CAN controller and transceivers built in. I was successful in making it "blink" ... however, I have no idea how nor how to make code happen in the IDE software. Normally my 2nd step after making something blink is to make it do SOS in morse code. Kinda of backwards, as I'm quite SOS and SOL until I actually make it blink dot dot dot dash dash dash dot dot dot. Just a bit frustrating how the NXP IDE is supposed to be "easy" but the hobbyist-oriented Arduino stuff actually is easy.
Speaking of Arduino, we also ordered some SparkFun CANbus shields, where the transceiver and controller are on-board and the MCU (microcontroller unit – "computer") only needs to shuffle the data coming out of it. But they're lost in the hybrid UPS+USPS delivery system. Rather than it being twice as cheap, it just introduces more people to lose the package – and more other people to blame it on. I'm told we can report it lost after 4 weeks...