# Curtis 1238 and CANopen



## akseminole (Jan 5, 2014)

http://store.evtv.me/proddetail.php?prod=ArduinoDueCANBUS&cat=23

http://store.evtv.me/proddetail.php?prod=gevcu&cat=23

http://store.evtv.me/proddetail.php?prod=OBDIIfemale&cat=23

I understand that there are also open source projects associated with these products, so you may be able to build your own. It's the only thing that I found when I was looking for OBDII retro connectivity. Haven't used it, so I don't have an opinion about it though.


----------



## CKidder (Dec 12, 2009)

Well, I wrote large chunks of the software that runs on both of the devices that were linked above. So, of course I'd feel free to recommend those as well. 

The Curtis 1238 of course does output canbus data. But, it is not in OBDII format so you can't directly use something like Torque. If you want to use Torque you will need something that turns the Curtis messages into OBDII communication (I say it that way because OBDII is a polled system where it only provides the information that something like Torque asks for. It doesn't send out data that nobody asked for). So, the easiest approach is to get something (like the CANKIT linked above) that can input the Curtis messages and then turn around and supply the proper OBDII replies for Torque. I think that GEVCU is massively overkill for that task. But, if you did happen to need an ECU for some reason then it would fit the bill for that. GEVCU does, however, have code that implements OBDII so that would be helpful. That code could be ported to other things. 

The CANKIT isn't a fortune so it might be a good option. If you are looking for a more hardened (for automotive or marine use) then you might instead use a Macchina (http://rechargecar.com/macchina). This isn't as powerful of a board but it is meant for automotive use and should be good enough for the task at hand. It really isn't any cheaper than the CANKIT from EVTV. If you want cheaper you could try a Teensy 3.1 with canbus shield. Or, any of the millions of cheap canbus systems available out there (canbus triple, cantact, etc). The options are endless. But, you are pretty much going to be stuck getting a board and piecing together software. As I said, GEVCU has code to support OBDII so you can grab code from there for that aspect of it. I don't have any experience with Curtis controllers but I'd imagine that the canbus spec for the communication is available somewhere. Between those two things you should be able to put something together.


----------



## HVJ (May 11, 2015)

Hey guys, thanks for the replies! They are starting to put me on what hopefully is the right track. 

After a lot of research I am thinking of going with the CANbus Triple to read the CAN data from the Curtis controller, converting the data/protocol, and then sending out OBDII commands to the OBDII adapter. The reason for looking at the CANbus Triple is that it has two CAN channels where it can read CAN data, modify it in flight and then send out the modified packet down the line. I believe more or less this is what needs to be done to parse the Curtis CAN spec into OBDII spec? 

The other big issue I am running into is that I cannot find a Curtis 1238 CAN protocol sheet anywhere. All the manuals and data sheets I have found so far for this controller say only that it uses CANopen, but I am not sure what commands will tell the controller to do what. I am only trying to pull status data, such as motor rpms, amperage draw, etc, and not actually control the boat from the CANbus. 

This is my first dive into the CAN protocol and I am trying to wrap my head around exactly how CAN works and how CAN and OBDII interact with each other. Trying to find data for this specific controller has also proven to be very difficult. Any tips would be greatly appreciated.


----------



## frodus (Apr 12, 2008)

You would be "responding" to OBD PID requests from the OBDII adapter. Torque initiates the polling of the PID, the OBDII adapter converts serial strings to OBDII CAN data and sends the request over CAN. The CANbus Triple would need to receive that, decide what to poll and then send over CANOpen, get a response from the curtis, parse and send the response over CAN to the OBDII adapter.

Basically you're making an OBDII to CANOpen gateway.

Email me for the CANopen spec.


How new is your 1238? If its from HPEVS and its fairly recent, they have some non-canopen stuff available, its pure can, and it may be easier to read from.

http://www.hpevs.com/Site/images/jp...structions REV A VER 5.14 and up 3-27-14 .pdf

Page 61.


----------



## HVJ (May 11, 2015)

Alright that was what I was thinking it would need to do - wait for a pole from the OBDII adapter and then ask for the data over CAN from the controller. 

Yes the motor controller is from HPEVS, it is specifically the 1238-5601. I am not entirely certain how old it is at the moment, I will look it up tomorrow morning. I would guess though at around 3-4 years. 

If those addresses on page 61 of the document you linked work that would save a lot of time in trial-and-error. I will have to test those once the CANbus Triple comes in.


----------

