Servers by jDrones

How to make the TFMINI rangefinder talk I2C


(ppoirier) #142

Pixmode is clear text, so it can be read with a standard terminal, so if you read cm in a standard terminal, it should work as lightware serial on ardupilot


(rickyg32) #143

So right now I seem to be reading MM and won’t change to CM.
Also won’t change to Pixmode…grrrrr
It’s like it doesn’t want to take any commands via the gui and I just don’t know enough bout realterm to use it.
Can you tell me how to send the commands via Realterm. Perhaps that will resolve it


(rickyg32) #144

Argh
Its a bad cable. I change the cable and get Pixmode…accurate measurements grrrrr.

thanks Patrick for your help. As always its appreciated.


(rickyg32) #145

Damn I still get bad Lidar health on mission planner. Grrrr.
In TF Gui its spot on in Pix Mode…


(ppoirier) #146

Can you read it if you connect to a terminal @115200 (you can use Arduino Serial Monitor)


(rickyg32) #147

I have not tried.
I used the TF GUI and I can see its in PX Mode and MM. What would Arduino Serial Monitor show me.


(rickyg32) #148

um is the flight controller powerful enough to power the TF Mini…hmmm


(ppoirier) #149

PixHawk ok
PixRacer No
Recommand using UBEC


(rickyg32) #150

Working.
First the cable.
Then the right config…Pix Mode. Finally
Lastly the port was wrong. Pixracer documentation is a little thin on serial ports.

Works ever so good


VL53LOX Rangefinder for Landing Flare
(Grant Erickson) #151

I am using a pixhawk mini, px4flow, tfmini, and arduino pro mini as well as an I2C splitter for a position control system on my drone. The arduino and tfmini are both powered by UBEC. I have isolated the problem to the arduino board (tfmini parameters are correct and runs on Benewake in standard mode, also px4flow logs are fine). Despite uploading the given INO to the board… In MP the sonarvoltage and sonardistance both show “0” as well as a voltmeter reading of “~0V” at the AD4 and AD5 pinouts on the arduino. I have run other sketches on the arduino and have proven that it is in fact functional. Any tips on where to go from here would be greatly appreciated!


(ppoirier) #152

Hello Grant, First , just to make sure;
You have the TFMINI RX-TX connected to Arduino TXD-RXD ?
And the I2C SDA (A4) is connected to Flight Controler SDA an the SCL(A5) to FC SCL ?


(ppoirier) #153

Please note that I added a new sketch on gitter its called:
BeneWake_TFMINI_I2C_ProMini_Maxbotic_Fast_Blink.ino

Basically it toggle the LED (13) on evry successful TFMINI readings, it is quite fast blinking, so its shows solid red but in the case there is no reading at startup it stays off.


(Grant Erickson) #154

Thanks for the reply! I have double and triple checked the connections on the Arduino and FC… I also ran Fast_Blink.ino, which resulted the red light staying off. But, the code on gitter did not compile so I changed the last few lines from this:
void loop() {

readlaser();
for (int i=0; i<100; i++){

}

to this:
void loop() {

readlaser();
for (int i=0; i<100; i++){
}
}

before running.

Considering this alteration did not change the output of the code, what does this tell you about where my problem is?


(ppoirier) #155

Oups… sorry, this timing loop was not meant to be there… I just removed it

But once this removed, does it get red ?


(Grant Erickson) #156

Thanks. Removed the loop and still no red


(ppoirier) #157

Then it looks like TFMINI is not set to proper mode


(ppoirier) #158

Then it looks like TFMINI is not set to proper mode


(Grant Erickson) #159

I have connected my TFMINI to benewake tf, received output that made since, and sent “42 57 02 00 00 00 01 06”.
This is how the benewake window looks after a reboot…

I have also ran a test in which I hard coded a non variable distance measurement into the Arduino sketch. I was able to read my entered value in qgroundcontrol’s analyze widget. The problem is cornered to the output of the TFMINI, but it is almost as if the mode change will not stick. Thanks for your help.


(ppoirier) #160

Ok I see you send in cm , try switching to mm

Modify output unit to mm output: 42 57 02 00 00 00 00 1A
Modify output unit to cm output: 42 57 02 00 00 00 01 1A


(Grant Erickson) #161

I changed to mm… still no readings.


I went through the code and added the blink command after condition tests. I indicated which blink tests worked and which didn’t. Any thoughts??