Robot Radar Module

60 GHz radar distance sensor for your robot

Similar projects worth following
Using the A111 60 GHz pulsed coherent radar sensor from Acconeer AB, this module can sense distances up to 2m with mm precision. Unlike lidar sensors, it is unaffected by dust, color, or ambient or direct light sources, and poses little eye safety risk, even if lenses are used (well, almost lenses).

Inexpensive lidar distance sensors have hit the market in the past few years, and now they are joined by 60 GHz radar.  The A111 distance sensor from Acconeer uses a 60 GHz pulsed coherent radar to measure distances up to 2m with mm accuracy and an update rate of up to 1500 Hz.  The device has the electronics and antennas integrated into the package, so you don't have to deal with 60GHz signals on your PCB (!). The part sells for around $12 in single-unit quantities, which seems reasonable for what you get. It uses an SPI interface, which is great, but the part comes in a decidedly non-hacker-friendly BGA package.

Although the details are yet to be worked out, I plan to make a hacker-friendly sensor module with this part, including power supply and I/O level translation (at least).  I'll additionally create a software library for interfacing with it (initially targeting Arduino).

I just became aware of the this part today, and ordered some right after I saw it, so that's about all I know. Note that the datasheet is dated yesterday.  Next step: come up with a quick prototype PCB so I can get some mileage on it before designing the final module.

Finally, I intend to experiment with PCB zone-plates to collimate the radar beam into a tighter pattern for finer sensing.  Unlike traditional lenses, zone plates work by diffraction, and can be made with flat sections of material that blocks the beam.  In this case, the proper pattern of concentric copper rings on a PCB should be able to collimate the 60 GHz beam.

Oh, yeah, as usual, I'm releasing all the design files and software under an MIT license.

  • Ugh, BLOBs

    Ted Yapo06/04/2018 at 03:58 4 comments

    Finish this proof:

    1. All closed-source binary-only firmware BLOBs suck.
    2. The software for the A111 radar part is supplied as a closed-source binary-only firmware BLOB.
    3. Therefore, it follows that ______________

    When I first saw this part and noticed that it used an SPI interface, I was pretty psyched.  SPI interfaces are easy and supported everywhere.  Then I agreed to Acconeer's license so I could download their software to try the part out.  It turns out that they don't document the SPI interface at all, but merely provide pre-compiled code that interfaces with the part.  The license agreement allows me to distribute a binary containing their drivers as long as I license it to end users under an agreement at least as restrictive as the one I agreed to (at least I think it says that - don't rely on my opinion here).

    So, OK, I won't use their software (except maybe to initially test the PCB).  But, in their agreement, it says I can't reverse-engineer the part (as pointed out in the comments below - I can't reverse engineer the software, but having signed the agreement, this practically means the part, too).  So, trying to figure out the SPI protocol/commands is off limits.  If I had just bought the part and slapped it on the PCB, I could have hacked away at the protocol to see if I could get it to do anything.  But, having signed the agreement, I don't think I can do that anymore.

    So, this project may just end up being a breakout PCB for the part, without any useful software of my own.  You could still use it with Acconeer's software (assuming you agree to their terms).  On the positive side, it should cost less than $20, as opposed to $250 for the two development kit boards you would otherwise need to purchase from Acconeer.  In that sense, it will be a success if it works, but the software situation is still quite disappointing.

    I've attached their software license agreement in its entirety below.

    This is all garbage - it's a chip, people - sell me the part and tell me how to program it - don't go full Microsoft with this paranoid licensing nonsense!

    SOFTWARE LICENSE AGREEMENT LIMITED LICENSE AGREEMENT FOR ACCONEER MATERIALS IMPORTANT - READ CAREFULLY: This Limited License Agreement ("LLA") is made between you (either an individual person or a single legal entity, who will be referred to in this LLA as "You" or “Licensee”) and Acconeer AB, a company incorporated under the laws of Sweden (hereinafter “ACCONEER”) for the software licensed materials that accompany this LLA, including any associated media, printed materials and electronic documentation (the "Licensed Materials"). The Licensed Materials include any software updates and supplements, that Acconeer may provide You or make available to You after the date You obtain the Licensed Materials to the extent that such items are not accompanied by a separate license agreement or other terms of use. 1. LIMITED LICENSE Subject to the terms and conditions of this LLA and applicable Open Source Terms (as defined hereafter) and during the term of this LLA, ACCONEER hereby grants You under intellectual property rights owned by or licensed to ACCONEER, a non-exclusive, non-transferable, royalty-free, copyright license, without the right to sub-license (except as expressly stipulated herein or authorized in writing by an authorized representative of ACCONEER), to use and reproduce the Licensed Materials in object code solely and exclusively with ACCONEER chipsets or integrated circuits as applicable (“ACCONEER Chipsets”) for incorporation in a Licensee Product (as defined hereinafter) and subsequent distribution directly or indirectly of said Licensee Product provided that the software part of Licensed Material executes solely and exclusively on, or in conjunction with ACCONEER Chipset in Licensee Product (“Limited License Purpose”).   To...
    Read more »

  • Ugh, BGAs

    Ted Yapo06/04/2018 at 03:30 7 comments

    I used to complain about QFNs.  Then I tried a BGA.  Not even a serious one, just two rows of balls on the outside.  Now I love QFNs.

    I haven't tested it yet, other than applying power and looking for smoke (none was forthcoming), but the outside ring looks OK from all four sides.  This is much better than the first time, when half of the balls were bridged.  Here's what happened:

    1. I populated the other side of the PCB first

    2. I applied a low-temp bismuth-based solder paste to the BGA pads on the PCB.  I used too much, although I figured it would just get pulled to the right places during reflow, like it does with other packages.  This was a mistake.

    3. I reflowed the part with hot air.  Afterwards, there were a lot of bridges between balls visible.

    4. I removed the part with hot air, cleaned off the PCB with solder wick and flux, and manually repaired the solder balls on the part as best I could.

    5. I applied just flux to the PCB (no paste), then reflowed the part on with hot air.  It kind of looks OK, and didn't blow up with power applied, so maybe it'll work.

    When I populate the next one, I'm just going to use a tiny bit of solder paste.  I'm tempted to just flux the board and use just the solder balls on the part.

    In any case, here's the front side of the PCB:

    and the back:

    Some of the 0402 caps tombstoned on me for some reason, and I had to manually re-solder them.  My solder paste is very old, so maybe it's not up to the task - I can try pre-fluxing the PCB with the next one to see if that helps.

    Finally, here's a close-up of the radar part:

    You can see the little antennas - presumably one for TX and the other for RX, but I have to be careful.  In order to get access to the closed-source binary-only firmware for the part, I had to agree not to reverse engineer it.  Is recognizing antennas and counting them reverse engineering?  Oh, but I'm getting ahead of myself.  I was going to save the licensing rant for its own log...

  • Soldermask surprise

    Ted Yapo05/06/2018 at 10:51 9 comments

    I received the PCBs from OSH Park, maybe Friday I think, because I was away for a little while.  I probably won't get to assemble one right away, but I did get a look at them.  I especially wanted to see if my 4/5 design in a 6/6 process worked.

    It looks like I got away with it on all three boards.  I suspected I would - it's only a short trace.  The thing that really struck me about this image, though, was how thick the soldermask is where the copper has been removed.  At first glance, at least, it appears to be much thicker there than when it is over copper.  I had somehow always imagined it as a uniform thickness over everything.  Maybe it's actually supposed to fill-in the area where copper has been removed?

    This fact has no bearing on the performance of the board, or the radar project in general, but I thought it was interesting.

    Oh, and those 0.3mm BGA pad are small!  As in, they are actually 0.3mm, which is the correct size.

  • PCB: first try

    Ted Yapo04/27/2018 at 01:15 2 comments

    I designed a 32x32mm breakout PCB for the A111 sensor today.  The datasheet says you need a solid ground plane on the top layer.  I did the best I could using the OSH Park 2-layer rules.  The reference PCB sold as a development module has a really unbroken ground plane - they must be using via-in-pad, which isn't an option here. 

    The datasheet states that the plane is required as a reflector for the antennas.  I suspect this plane shields the signal traces from picking up the 60GHz signal, too.  60GHz has a wavelength of 5mm in air, so a resonant 1/4-wave antenna is only 1.25 mm long.  That's shorter than the length of a via (1.6mm) on this board!

    There are a few traces on the top side.  They all look like great antennas at 60 GHz, but I'm hoping I can get away with it.  Even the 2mm spacing between stitching vias at the board edge is way too huge for 60 GHz - they're 2/5 of a wavelength apart.  They're really there for the lower-frequency signals on the board.

    There are also three places where I had to cheat on design rules - 6/6 isn't small enough to bring one of the traces out of the BGA.  I ended up with a short segment violating the width and spacing on both sides, but I'm hoping that I'll still get a workable board.

    Only the radar module itself is on the top; the rest of the components are on the bottom.

    The circuit is a basic breakout board.  A 1.8V regulator supplies power to the A111, while 3x 74LVC2T45's translate the digital interface from 1.8 to external logic levels between 1.8-5V for maximum flexibility.  I'll almost certainly just use it at 3.3V, but it's nice to have the option so early on.

    This board really is just a quick test so I can get some mileage on the part, find any issues quickly, and start playing with software.

    For the final sensor module, it looks like it makes sense to integrate a cheap MCU on the board, but the details have yet to be worked out.

    Now I wait for parts and PCB to arrive.

View all 4 project logs

Enjoy this project?



barry.hendy wrote 04/21/2021 at 11:49 point

Hi Ted. I would like to talk to the A111 board from an arduino. Do you know if anyone, or have you, worked out a driver for it?


  Are you sure? yes | no

fe7565 wrote 10/23/2019 at 00:45 point

What is the latest on this project?  I just bought the Acconer XM112 and XM122 modules, but the connector is so small that I will need to buy the eval board(s) to program them. 

  Are you sure? yes | no

Ted Yapo wrote 10/23/2019 at 02:01 point

I abandoned this project entirely. I made the mistake of signing the agreement to get the example code, which prohibits me from reverse-engineering it to make an open-source driver. So screw them.

  Are you sure? yes | no

fe7565 wrote 10/23/2019 at 05:06 point

Sparkfun made a board very similar to yours that works with Raspberry 3 and up boards or any Cortex ARMv7 and up.  I am not that familiar with programming, but  wondering that (if the correct  connections are made) any program in python can be uploaded and used with the sensor.  Of course, the user's program would still need to use the Acconer proprietary API layer to communicate between the sensor and the MCU:

  Are you sure? yes | no

Simon Merrett wrote 05/05/2018 at 07:55 point

I know this isn't what you are investigating this IC for but is there anything you have read or seen that makes you think it's unsuitable as a low-ish bitrate data transceiver? 

  Are you sure? yes | no

Ted Yapo wrote 05/05/2018 at 23:08 point

I haven't seen anything to indicate that it could be used in this way, unfortunately :(

  Are you sure? yes | no

Peter Kese wrote 05/04/2018 at 08:31 point

To avoid any standing waves forming on the copper plate, I'd keep the dimensions of the plate rectangular rather than square shaped (anything but square will do, even 50 or 100 mils difference will help).

Another thing would be to round the corners of copper edges a little bit to disperse reflections (90 degree corners tend to focus waves back in the same direction). Probably your vias in the corners are already doing the trick, but why not add some rounding and be on the safe side.

That said... I'm no HF expert and would be interested in other people's opinions.

  Are you sure? yes | no

Ted Yapo wrote 05/05/2018 at 23:13 point

This is an interesting question.  I'll have to think about how I could even detect if this were a problem. Maybe a tiny SMD diode can work as a diode detector in the middle of a 2.5mm long half-wave dipole?

  Are you sure? yes | no

artgodwin wrote 05/04/2018 at 00:04 point

I've looked over the pdfs for this part but found them pretty content-free. Is there a datasheet or presentation that describes what it actually senses ? You mention imaging - does it have some kind of beam-steering ?

  Are you sure? yes | no

Ted Yapo wrote 05/04/2018 at 00:58 point

You've probably seen everything I have.  It just senses the radar returns; there is no beam steering as far as I know.  The beam is 40x80 degrees.  Any imaging would require a mechanical scan.

  Are you sure? yes | no

Kris Winer wrote 04/26/2018 at 03:20 point

This looks pretty cool!

I think the BGA should be no problem for low-temperature solder paste methods. The 1.8 V power is somewhat challenging since to interface with the rest of the world you will have to have logic level translation to 3.3 V. Maybe if you integrate an STM32L4 MCU also running at 1.8 V this can be avoided? The software situation is less than ideal but, like ST's VL53X time-of-flight "lidar" solution once you have it working it's just calls to high level functions in the Arduino sketch.

I wonder if you will be able to track objects with this? One thing I would like to be able to do is tell if people are entering or leaving a room. Maybe this sensor can do this level of discrimination?

  Are you sure? yes | no

Ted Yapo wrote 04/26/2018 at 03:31 point

At first, I'm just going to throw on level translators (maybe 74LVCxT45) to bring everything to 3.3 or 5V outputs, whatever you need, plus a 1.8V LDO.  I have a footprint on a PCB at this point, and it looks manageable.  After I get something working, I can design the "right" board.  I don't want to wait until I know what I'm doing :-)

I see in the API that you can get the full return envelope, so you should be able to so some rough imaging, like with side-scan sonar, although the beam is kinda wide.  If the zone plate idea works, that might thin it out a bit.

  Are you sure? yes | no

Kris Winer wrote 04/26/2018 at 03:44 point

I also noticed they recommend 100 nF AND 1 uF decoupling capacitors on all voltage pins ;>

  Are you sure? yes | no

Ted Yapo wrote 04/26/2018 at 10:19 point

Yes, but they don't mention that the two should be in different sized packages...which, of course, they should, otherwise you might as well use a single 1.1 uF cap :-)

There's a hacker-oriented paper in all of this, you know.

  Are you sure? yes | no

Ted Yapo wrote 04/26/2018 at 10:20 point

I missed this the first time - are you suggesting using a bismuth-based paste to solder the package without melting the balls?  Does that work?

  Are you sure? yes | no

Kris Winer wrote 04/26/2018 at 16:31 point

Yes, I use Chip Quik low temperature solder paste exclusively for all of my builds which include BGAs like the one you're planning to use as well as 0.4-mm-pitch WLCSPs. The solder balls are not meant to be melted, at least not all the way. The balls stay intact. At "worst" the tips are melted but in reality the added solder forms the bond between pad and ball. Low temperature solder paste is very forgiving and makes 0.5-mm pitch BGA easy. Just get the 5 g tube and buy some 27 gauge metal syringe tips.

  Are you sure? yes | no

Ted Yapo wrote 04/26/2018 at 18:42 point

@Kris Winer 

I have some bismuth paste in my fridge and a supply of 27 ga dispensing needles :)

All the other parts are on the back side, so I'm considering a normal reflow with lead-free paste (high-temp stuff) for the back side, then a low-temp pass with bismuth solder for the BGA on top.

I was also thinking you could cheat and make filled vias for via-in-pad this way.  Make normal vias in the pads, then put a piece of kapton tape over the bga site, fill the vias with high-temp paste and melt it to fill them in.  Now, the vias are closed and you can mount the BGA on there with low-temp solder without it all wicking through the holes.  Maybe.

I looked at pictures of the eval PCB for the radar.  When they say solid top plane they mean it - they must be using via-in-pad.

  Are you sure? yes | no

zakqwy wrote 04/26/2018 at 02:14 point

holy crap, that is a cool chip! 1500 Hz update, nuts!!

edit: looks like their firmware is supplied as a blob. you gonna roll your own?

  Are you sure? yes | no

Ted Yapo wrote 04/26/2018 at 03:11 point

I signed their license, so I may not be able to.  Now I have to read it :-)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates