Raspberry Pi Tracer Interface

23K3122

Intro: Raspberry Pi Tracer Interface

Everything started with the fact that the MT-5 display wasn't what I really needed. I was in the need of checking the charging from the device using the battery: my trusty Raspberry pi (1 B at the time). I managed to stumble over this instructable (https://www.instructables.com/id/Use-Arduino-to-Com... and git project (https://github.com/xxv/tracer/). So the code and research isn't mine.

But this was made for the arduino, (why use a USB and arduino when you have the capability on the raspberry pi?)

So i bought the EP solar MPPT solar controller from eBay + MT-5 display. That got me thinking that it should be possible to collect and store the data for later use. Said and done I started to search after the protocol specs and found what I needed here [Protocol] and as a nice bonus there where some code for arduino and python.

So with this information and code this was quite a easy task.

The result

STEP 1: (Optional) Try on a Arduino.

You might consider this step to make sure you have hooked up everything the right way. Since the arduino is a little bit more forgivning then the raspberry pi (only 3.3v and will die if you hook it up wrong).

On my RJ45 cable it was:

arduino pin 10 to Full blue

arduino pin 11 to green/white

Arduino pin GND to orange

Double and triple check this before you hook it up, there are some 12v pins!

Arduino code: Arduino code

Does it work?

Great! Go on to the next step.

Else check your connections

STEP 2: Step 1: the Hardware

You will need:

1. raspberry pi with appropriate cables and case.

1,5 A SD card 8 gb microSD for the newer ones

2. A RJ45 cable that you don't like (but is working)

3. Connectors to hook the 2 together. I lab with ( http://www.ebay.com/itm/40PCS-Dupont-wire-jumper-c... )

4. A Tracer MPPT controller (or equiv.)

5. 12 v battery

6. Solar panels

STEP 3: Making the Cable

Follow the pictures.

CHECK WITH MULTIMETER!

Black= GND

STEP 4: Step 2: the OS

STEP 5: Step 3: the Software

When first booting Expand filesystem

if you allready have a active Raspberry Pi

start "sudo raspi-config"

Choose 8

Then A8

And No ("Nej" is no in swedish)

Finish

Do a

git clone https://github.com/xxv/tracer.git

cd tracer/python/

python query_demo.py

STEP 6: Step 4: Troubleshooting

Nothing happens

Most common reasons are:

switched TX/RX check connections.

to be continued (please use comments)

STEP 7: Modifications

I made a small testscript that you can put in the chrontab

17 Comments

Good morning, I would like to make a data logger of the tracer EPSolar 1215RN with a raspberry Pi. I followed all the instructions in the blog but the python program does not work and the result is a series of poprogramming language errors. I ask you if you have an updated version of the python code. Thank you for help
Can the output from the tracer be easily split so that I can still use the MT50 as well as the data being sent to the Raspberry Pi, or is this going to be very complicated for a complete beginner to achieve?

It looks like EPEVER changed the pinouts of the RJ45 plug, I just receive it and by the instruction they look like this :

The RJ45 interface pin define is shown below:

1 Power supply output +5V

2 Power supply output +5V

3 RS-485-B

4 RS-485-B

5 RS-485-A

6 RS-485-A

7 Ground

8 Ground

hi will this work of rasburry?

Does someone know how I can let the Raspberry PI execute this command at a certain time interval and save the data on an SD-Card?

thanks for a well detailed tutorial. Am trying the same setup and when ever i run the query_demo.py i get this error.

Traceback (most recent call last):

File "query_demoMOD.py", line 43, in <module>

result = t_ser.receive_result()

File "/home/pi/tracer/python/tracer/__init__.py", line 128, in receive_result

if read_idx < len(self.sync_header) and b[0] != self.sync_header[read_idx]:

IndexError: bytearray index out of range

How do i resolve this issue please.

getting the same thing on mine

Hey Dok, did you get this working ? I'm getting :

File "/home/pi/tracer/python//tracer/__init__.py", line 128, in receive_result

raise IOError("Error receiving result: invalid sync header")

IOError: Error receiving result: invalid sync header

I'm sad to say I corrected this issue by changing my Tx and Rx wires, which I had backwards. Good luck!

Hi, I am trying to connect directly to Raspberry Pi using USB Serial converter. I am getting the same error as the person above. I am assuming it is a ttyUSB setup issue. Does anybody know how to solve? Thanks

Sorry jensah I didn't see your link to the protocol page which goes into great detail the wiring diagram. I do beleive I have the correct wiring and setup on the hardware side. After research I think there has been updates to the rasberry OS and disabling of serial ports so I will try to fix this first. As of now I'm just trying to see any transmittion bytes from the tracer to the raspberry. Currently I can't see any logs of such entry, therefore the script does not do anything which is to be expected :)

I'm curious what are people using this for, are you able to get it into something such as domoticz or pvoutput?

Hey, any chance of modifying the xively output for PVOutput.org? They just want CSV seperated data fields.

Hey, any chance of modifying the xively output for PVOutput.org? They just want CSV seperated data fields.

Did you have any issues with ttl to GPIO (+3.3v) voltage difference? There care differing reports on the voltage from TX to ground (5v vs 3.3v). There are reports of people blowing up their Pis - for example https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=54098

This is very helpful. Thank you for sharing! I hope we see more from you in the future.