DIY Electric Car Forums banner

1 - 6 of 6 Posts

·
Registered
Joined
·
3 Posts
Discussion Starter · #1 ·
Hey guys, first post here at DIYElectricCar. I have a question about interfacing with the Curtis 1238 motor controller over CANbus.

I am using this controller in a hand built boat for a club at university. I am trying to display motor data from the controller (such as motor rpms, temperature, and amperage draw) to an Android device via the Torque app. Thus far I have bought an OBDII-to-Bluetooth adapter (LINK) and tried connecting the adapter to the motor controller. The CAN outputs on the motor controller are matched with the corresponding pins of the adapter and both sides are terminated with resistors. The adapter attempts to connect but fails to communicate with the controller. With the Curtis 1311 the CAN status is 127 on the controller - pre-operational.

Browsing other threads here I have noticed that many have connected the Curtis motor controller to the Orion BMS and connect an OBDII scanner to the Orion rather than directly to the Curtis controller. It seems the Orion acts as a go-between for OBDII scanners that connect to android devices in the dashboard and the CAN protocol of the motor controller; parsing the CAN data into OBDII spec messages to make the OBDII scanner happy. However, the boat is powered by solar panels and lead-acid batteries rather than the conventional lithium-ion battery packs for most EVs, so the Orion for us is not an option.

So my question is, is there any other reliable way to pull motor information from the controller and forward it via Bluetooth to an Android device? How could one go about directly interfacing with the CANopen protocol of the Curtis controller using either an OBDII scanner or something like the ELM327 chip? Am I missing something obvious here in general?

Thanks for your help. If you need more information or clarification please ask.
 

·
Registered
Joined
·
236 Posts

·
Registered
Joined
·
288 Posts
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.
 

·
Registered
Joined
·
3 Posts
Discussion Starter · #4 ·
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.
 

·
Registered
Joined
·
4,064 Posts
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.
 

·
Registered
Joined
·
3 Posts
Discussion Starter · #6 ·
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.
 
1 - 6 of 6 Posts
Top