/Projects/Mobile robot platform v1
They say that failure is also to be documented, so here is one project that currently has that status.
Please note that this project is abandoned.
Update 9/5/2013: After this article gained some popularity on Hackaday blog, I went to re-read what I have written 4 years ago. And now, I would just like to thank the Venus company for debugging my design at that time, it was very helpful to read their professional comments and for that I am extremely grateful. Their GPS receivers have very high sensitivity and can get fix even indoors, so that's why I have chosen them in my design. My only regret is that I didn't buy that chip on a tested breakout board from Sparkfun and then design my own PCB from their own. Please keep in mind that in 2009 when this project was worked on, there was not much about this Venus GPS chip, it was still pretty "new". I even think that Sparkfun was just about to release their breakout when I designed this, but I am not sure anymore...
I always had this idea of making my own GPS guided RC car. The hardware should not be very complicated but the software could get pretty messy. After some planning I came up with the hardware design (my robotic platform) that has integrated:
- Atmega328P (Atmega48P/88P/128P/328P series)
- HM55B digital compass module from Parallax
- PING))) ultrasonic range finder from Parallax
- Two MC33886 H-bridge controllers from Freescale
- Voltage converters to 5V and 3.3V for all electronics on board
- GPS receiver chip - Venus634FLPx from SkyTraq (bought from SparkFun)
- External LNA for more GPS RF amplification
- On-board small chip scale antenna (now you know why external LNA)
- ISP programming port for Atmega uC
- Three push-buttons with input pins accessible for additional external devices (more sensors)
- Three status LEDs with three output pins accessible for additional external devices (servos)
- Debugging with UART port for Atmega uC and GPS receiver chip
Any of Atmega48P/88P/168P/328P can be the brain of the robot. Clock source is 12 MHz crystal.
The robot can "see" with it's sonar eye - the PING sensor. This PING sensor can be mounted on a servo motor so that the robot can see left, right and forward if such option is required. This is possible since the robot platform has extra pins that can be used to power and control the servo.
The robot can also know which direction it is facing with it's digital compass HM55B chip. This little chip has to be as far away from DC motors as possible because the motor's permanent magnets *will* cause false heading readings.
GPS receiver chip
Than there is the famous GPS chip, Venus634FLPx. I went for this chip because it has accuracy of <2.5m, integrated LNA, good configuration options, dataflash logging (not used in this robotic platform) and it is very small. I will talk about this GPS chip later on, as IT is the reason why I am prematurelly writing about this GPS car, actually this robotic platform so far.
Aside from these input devices there are three general purpose buttons labelled as: CLEAR, SET and GO!/STOP.
Atmega can controll two DC motors; one for forward/back motion and the other for turning left/right. Most RC cars that can be purchased from toy stores have DC motor configuration for direction changing instead of servos. So I decided to control it with MC33886 H-bridge controller that can deliver up to 5 Amps. H-bridge controllers are connected to Atmega to OC0n and OC1n PWM outputs for easy motor speed as well as direction control.
The platform board can be powered from batteries from some 7V up to about 25V.
Auxiliary power output
This port can be used to connect servos and other sensors to board's 5V regulated supply.
ISP programming port
It is important to provide easy access to Atmega's programming port. This port can also be used as auxiliary input/output port with 3 I/O lines which are connected to existing push-buttons on board.
There are three LEDs that can be controlled via Atmega. They also have pins exposed so they can be used as digital outputs for controlling servos for example.
Current project status
I designed the hardware and the PCB board in Eagle and sent gerber files for PCB manufacturer BatchPCB. It took almost 50 days for the PCB to arrive. I always forget that when I order from BatchPCB it takes me to completely forget about the PCB and that's when it appears in the mail box. As they say, cheap and quick don't go along quite well.
So, why am I writing about this unlucky robot platform? Well, because my GPS receiver chip simply can't get the satellite fix. So, at this point this is a failure. I have done some RF work before at 915MHz tops, but it seams that GPS signal is extremely weak (more than I thought) and that all PCB traces *extremely* influence reception of this high-frequency RF signal. I must say, it was pretty frustrating that GPS receiver didn't work properly after all this time so (assuming that the GPS receiver chip is not factory faulty or damaged) I tried following:
- replacing the antenna with ceramic one through external LNA – no luck
- connecting the chip antenna directly to GPS chip (overriding external LNA) – no luck
- connecting the ceramic antenna directly to GPS chip (overriding external LNA) – no luck
None of these combinations work under open sky (tests were done for more than 20 minutes for each combination) where normal GPS navigation has valid GPS reception. The digital part of GPS receiver chip work great, it sends NMEA output, I can configure it, reconfigure, it is all good. So, I contacted the SkyTraq manufacturer for help and I must say that they were great. They asked for my circuit and board layout, and two days later they replied with modifications and pointed to possible errors with my RF layout. So here is what they said:
The schematics of V634FLPx looks OK.
If there is NMEA output and the current consumption measured for Venus634FLPx is correct, then the connection for V634FLPx should be OK. Then the problem should be the issue of RF section. Please make some modifications as below describes:
1. The GND of LNA should be GNDRF and connected together with Venus634FLPx GNDRF to form a completed GND plane in both Top and Bottom layer.
This I didn't do as their datasheet clearly states "Do not connect GNDRF and GND" and I was not sure that my LNA could be powered through the GNDRF from Venus634FLPx.
2. Don't cross the VCC trace with RF trace since it will cause the impedance dramatically changing.
This tip I also didn't respect completelly as it can be seen in the image below.
3. You can remove C17 and try connect a passive antenna (the ceramic antenna you ever used, but make sure it's a good one) to RF_IN of V634FLPx. But carefully connect the GND of the ceramic antenna to the GNDRF pin of V634FLPx (eg. pin33). This action will bypass the potential problem of input impedance not matching at antenna or LNA. With short connection from patch antenna directly to Venus634FLPx, you should get position fix.
This I have to test again after I make sure my antennas are OK. Now, the question is: are my antennas OK or is my Venus chip factory faulty or damaged?
4. If possible, try to make RF trace as wide as possible.
This I also must do in next version that will come.
Vcc traced under RF section
GNDRF of Venus634FLPx not connected to GND of LNA
This all means that I have to wait for next 50 days minimum for the PCBs to arrive and that just kills me. Fedex doesn't help much, trust me. I also decided to change the GPS chip to MN5010 (from SparkFun) and to provide SMA connector on board for external antenna (active or passive). In the meantime I can play with H-bridge controllers, since I didn't test them out yet.
Edited text: My tip would be: If you have even the slightest doubt, don't go for bare Venus GPS chip without some kind of breakout board at first.
Freaky PCB section with LNA SMA661AS
You are welcome to download the project files below, but they are going to change as soon as I start redesigning this board.
P.S. I am sorry for ugly schematics drawing as priority was in designing the PCB.
[ Source: Trax ]
- From Alexander on 06-09-2013 at 23:04:45
Hi. Connect GND_RF and GND pads of Venus module and it should work.
- From trax on 06-09-2013 at 18:36:47
Thanks Chris. Yes I am aware that it takes a long time for the first fix. If I remember
correctly there was a SkyTraq software so you could upload ephemeris almanach data into the
Venus GPS chip, so I even tried that. It worked for almost an hour under various conditions
during my testing :(
- From Chris on 06-09-2013 at 18:33:11
Some thoughts. Ive used the Skytraq Venus 5 and S1315F extensively but not designed PCBs using
them, however, i have modified my boards and in my experience, whenever you have done some
modification, starting from a cold start, it can take some time for the chip to acquire its
first ephemeris fix. A minimum of 13 CONSECUTIVE minutes to get that ephemeris, and then after
that you have to make sure the backup battery has power and is delivering it to the chip (at a
very low current) continuously or it will ne
- From trax on 06-09-2013 at 18:26:46
@georgy: yep, it was very hot but the digital part worked - it sent UART data, so I thought it
was all normal. Anyway, this chip is not cheep so I didn't get another one to compare :(
- From georgy on 06-09-2013 at 18:09:07
Actually when i had this IC working it wasn't hot at all. so if it got hot i think you have
your "smoking gun" literally - the humidity that enter the IC will exit as steam when
in assembly line and delaminate the IC , breaking and disconnecting internal wires.
i had the ultrasonic scan that skytrack provide us with when we investigated this issue. it is
clearly seen. but you can check (if you want and can) by removing the IC and solder one
manually it needs very small number of connections so SMD solder
- From Nathan on 06-09-2013 at 00:37:54
I've also had trouble with the Venus634FLPx. In my case, I'm using a MAX2659 as an external
LNA, and a similar chip antenna. I'm able to get the Venus634FLPx to acquire a position fix
outdoors, but it takes about five minutes. If I attach an external amplified GPS antenna
(similar to https://www.sparkfun.com/products/464), the GPS acquires a fix in about 15 seconds,
even indoors. I tore apart the external antenna to see what magic it contained, and found a
large patch antenna connected to an LNA and
- From Me on 05-09-2013 at 22:47:45
Your PCB looks like a beautiful finished product. Why no prototype? I wouldn't expect
anything of any significant complexity to work right on the first try! Paying for and waiting
for custom PCBs for each attempt would be way too frustrating and expensive for me. I'd get a
Schmart Board and use that.
- From Alexander on 05-09-2013 at 22:23:06
You can try following to fix your project:
1. RF GND pins of V634FLPx module aren't connected to ground. Input RF stages are simply not
powered up. You MUST connect them to ground as shown in PDF:
https://www.sparkfun.com/datasheets/GPS/Modules/V634LPx-V634FLPx Layout Guide.pdf
2. Scratch off solder mask from GND polygon around VCC trace under LNA and solder couple of
100pF 0805 or 1206 SMD capacitors across VCC trace. It will help to provide RF connection.
3. If GPS module is fixed you can try to
- From trax on 05-09-2013 at 21:56:42
@georgy, this chip actually got pretty hot but if I remember correctly, it was supposed to do
that. Anyway, no baking of the chip for my PCB so who knows, maybe that was also one of
problems... I still think Venus GPS chips are kind of fiddly...
- From georgy on 05-09-2013 at 21:21:58
i have "eat" some shit with venus gps in some project at my work.
we have huge issue with assembly as this IC is level 5 humidity sensetive and i had like 750
PCB that went to the toilet because the assembly company didnt bake the IC before the assebly.
(the simptom was a large current cunsumption)
the second issue we had was with the saparate grounds. and we also did te single GND for both
digital and RF GND.
the other issue we had was with the chip antenna.
but it isnt the venus IC chip.
as a ti