PDA

View Full Version : Neato LIDAR Schematic



hash79
01-20-2012, 11:08 PM
I have been working on the schematic of the LDS Piccolo board within the Neato LIDAR module for a while now on and off. I finally have a first revision posted to my blog for anyone interested to check out. If you see any glaring errors or things that may be an error please let me know. I will be reviewing it further and taking measurements from a live unit to test assumptions based off of my schematic.

One step closer to creating an open source module...

http://random-workshop.blogspot.com/2012/01/neato-lidar-schematic.html


-Hash

lnxfergy
01-21-2012, 01:18 PM
Link Please?

-Fergs

hash79
01-21-2012, 01:25 PM
Fergs,

Yea, a link would have been helpful huh? :)

I edited the post above.

-Hash

Chunk
01-21-2012, 03:45 PM
Very useful! Now we know the pinout of the JTAG header.

Does anyone have experience with this type of DSP? Maybe we can download the firmware and look inside for more features or easter eggs :D

Unfortunately the LDS firmware file that is part of the web upgrade is scrambled somehow..

hash79
01-21-2012, 05:09 PM
Chunk,

I haven't tried to connect to the DSP's programmng header but I am sure the code protection bits are set. Openly circumventing that (if possible) would probably lead to a bad place since that is Neato's Intellectual property.

My plan with creating the schematic was to get an idea of their design. Some more measurements could help detmine how they initialize the imager and control the laser. If we can create the hardware I have no doubt some open source code could be written to run it. If the design is similar enough to the Neato design you could even load the open source code onto the Neato LDS if you wanted.

-Hash

Chunk
01-21-2012, 07:13 PM
Well I tried to look at the laser driver circuit some.. I don't really see why they made it so complicated..

I'm confused.. nothing in the schematic matches the features of the chip.. things that should probably be PWM outputs is going to some analog input instead - including the imager trigger line and one of the two??? laser driver outputs. The data bits are scattered all over the GPIO and instead of using the SPI peripheral the serial config input/outputs are bridged to imager outputs.. I can't see any way that would work in the pana vision datasheet..

I am not doubting your schematic exactly.. just wondering WHY they would why things up in the least useful way..

[edit]
Okay looking at it closer I have concluded this thing works on magic and pixie dust.. THIS CPU HAS NO CAMERA INTERFACE OR DMA OR ANY WAY TO READ THE PANAVISIPN
But they supposedly capture 3600 * 2000 10-bit pixels every second.. 14.4 megabytes of data WITH processing on a 40MHz CPU.. uhhh..

Is it possible the chip is mislabeled and there's something else in there??

hash79
01-21-2012, 08:32 PM
Chunk,

I'll search around the PCB for pixie dust!! :)

I think I almost have an idea how the Laser driver circuit works, but I need to measure with the o- scope to verify my assumptions. I am guessing Q1 is used to control the voltage level of the laser cathode to keep the laser right on the edge of turning on. The output I labeled "feedback" is probably the feedback voltage level to the processor. Q1-CTL is probably being pulsed rapidly into the RC circuit as a digital to analog converter to control this voltage.

Q2-CTL is probably used to send the short pulse which turns the laser on momentarily for the distance measurement.

When I create my next blog post I will post the blown up pictures of the PCB I used to create the schematic. I question the placement of data lines as well, and it may have been driven by PCB layout. Perhaps the DSP has other hidden secrets we are not aware of yet to manage the incoming data.

-Hash

Chunk
01-22-2012, 01:59 PM
Okay this is my theory: Like you said, Q2 is blinking the laser on during each reading which is what makes that on-and-off pattern the XV-11 paints on the wall.

Feedback measures current not voltage - it is on the wrong side of Q1 to measure the laser voltage and having only a 10 ohm resistor between it and ground is a dead give away.

The other thing being measured is a photo diode inside the laser itself to see how bright the laser really is

So Q1 probably either controls current or brightness.

I don't believe Q1 is keeping the laser at the edge of turning on - when Q2 is off no current should flow through the laser.

My idea is Q1 is setting a voltage to fine tune the laser BRIGHTNESS.. that would explain the huge cap behind its gate.. they want that voltage/brightness to hold steady when Q2 is closed.

I guess it COULD be controlling current - but if you just wanted to control current you would use a current limiting resistor and be done!

There are a lot of reasons to control brightness - maybe to prevent saturation by turning it down at close readings or maybe to ensure the intensity values that come back in the laser scan packets are calibrated..

One other thing about the laser drive.. I posted some error codes a while ago that give some hints about what is being monitored.. here they are again showing that current and photo diode are the things monitored.. also temperature is monitored but I don't see how..
0,LS_LDS_LaserCharging,3,49,104,0x9c,0x1fb0
0,LS_LDS_LaserPhotoTrip,3,50,106,0x9f,0x20eb
0,LS_LDS_LaserOverCurrent,3,54,114,0xab,0x2613
0,LS_LDS_LaserOverPWM,3,55,116,0xae,0x276c
0,LS_LDS_LaserPhotoStuck,3,56,118,0xb1,0x28cb
0,LS_LDS_LaserCurrentStuck,3,57,120,0xb4,0x2a30
0,LS_LDS_LaserOverTemp,3,58,122,0xb7,0x2b9b
0,LS_LDS_LaserFlakyPhoto,3,59,124,0xba,0x2d0c
0,LS_LDS_LaserFlakyCurrent,3,60,126,0xbd,0x2e83

[edit]
Just realized after posting that LaserCharging probably refers to charging C16.. because of R12 it would take a long time for C16 to be ready.. which is why we see a lot of LaserCharging incrementing and a lot of error readings during startup.

C17 is a mystery to me.. unless it is only there to reject DC on the Q2 control line.. maybe they had a problem with the laser getting stuck on?

hash79
01-24-2012, 01:57 AM
Chunk,

You are correct on the signal I labeled "feedback" measuring current. I said voltage because the DSP is measuring the voltage level which translates to current, I should have been clearer.

You are probably right regarding Q1, perhaps it is just current control for the laser so Neato can ensure they get the power level from the laser they want. This is a better approach than a fixed current limiting resistor as resistor tolerances will vary as will the properties of the laser modules, etc.

Once I take some more measurements and post them online C17 should be less of a mystery. Maybe Neato needed more of a slow ramp on/off to trigger the laser? I was a little stumped by that part of the design myself.

If you guys have suggested test points for measurement with the scope for things you would like to see let me know and I will make sure to take some readings and post pics here. Always happy to receive some help! :)

-Hash

Chunk
01-24-2012, 02:29 AM
If you guys have suggested test points for measurement with the scope for things you would like to see let me know and I will make sure to take some readings and post pics here. Always happy to receive some help! :)
It would be cool to see the signal going into Q1's gate. It is weird that it is coming from an analog pin that can't do PWM so I wonder if there is something clever going on...

Maybe you can disconnect the photo diode input and see what happens to Q1's gate - that will show us if it is a part of a close loop controller or just a cut-off/limit...

[edit]
I've also wondered how fast they clock the Panavision since you first figured out it was a Panavision!
And it might be neat to see Q2 gate versus the Panavision start signal - see if they are timing the laser pulse with the image expose