The Combine Forum banner

AgOpenGPS - Autosteer PCB

172K views 456 replies 50 participants last post by  francois  
#1 ·
Hi,

after Brian mentioned it and there had been already some PCBs in the autosteer-thread, I wanted to start an own thread, since I currently plan to design a PCB myself.

My goal is to reduce the "cable clutter". Only the steering angle sensor, the GPS-Anenna, the motor and of course power should be cables (and the additional RS232 GPS output if used).

Current idea:

  • As microcontroller an ESP32 WROOM dev board (connected using pin header)
  • GPS with the ardusimple F9P (connected via pin header, secured with PCB-distance holder)
  • Power regulator on the "main PCB" for 3,3V and 5V
  • serial out for GPS-data (MAX3232)
  • Outputs for autodrive (TPL7407LA - 12V 0,5A)
  • Inputs for workswitch, autosteer button, counter (future use)
  • wheel angle sensor input (ADS1115) - with a jumper for 0-5V or a linear potentiometer (and a good reference voltage)
  • roll with a MMA 8452
  • no heading, since that would be useless inside the cabin with all the steel and electric nearby?!
  • motor driver with one or two H-bridges (e.g. VNH7070ASTR)
  • if some IOs are needed for the autodrive-output or status LED a MCP23016T

Software: "steal" and modify from weder/coffeestrack

  • Ntrip-client (internet from tablet or router)
  • GPS out over Wifi or Bluetooth
  • "normal" autosteer, IMU (roll) and the autodrive relais-inputs over wifi.

Some open questions:


  • Should the board be designed for 12V (9-15V) input, or for 24V input voltage (so dcdc-converter for 24V for the motor and the board)?
    In that case a third "internal voltage" would be needed for 12V (for the autodrive outputs), but that could be the reference voltage for linear potentiometer the same time, so no big difference except a bigger regulator.
  • How much input protection is needed (I'd say some ESD for AutoSteer and work switch, since there is human interaction everyday)
  • Should a bno055 be placed on the board, even it's inside the cab with all the steel an electric currents?
 
#3 ·
12 volt, would be my suggestion. Those convertors can run pretty hot so good to exclude from the case.
BNO, definitely not.
Make sure pinouts work for ethernet, I'm sure this is already done. All need to do is plug in the ethernet card and hook up the cable.

If everything is in the box, then minor such as the steer switch.
I would also suggest, make people conform to the board, don't get bogged down with making it fit everyone's need. Software can be changed and uploaded, a board not so much.

Maybe a bit of a prototype spot on the board, extra pads to connect etc, but I would hope there is only 1 main version.
 
#5 ·
Make sure pinouts work for ethernet, I'm sure this is already done. All need to do is plug in the ethernet card and hook up the cable.
An LAN8720 for the integrated MAC in the ESP32, or did you have some other Chip in mind?

Maybe a bit of a prototype spot on the board, extra pads to connect etc, but I would hope there is only 1 main version.
Yeah, I guess a few IO-Pins on a pinheader for "future use" won't be a problem and a good idea.

Sounds good so far, the VNH7070AS is able to split into half bridges, so also hydraulic valves could be managed.
Have seen at some newer Tractors a third Valve which completely disconnect the pressure from the 2 PWM valves, so a second VNH7070AS would be a good idea.
ok, so I plan with two VNH7070AS, if only a motor is used the outut could be bridged to reduce the (thermal) load.

Maybe optionaly the powering of the ADS could be disconnected in order to connect it with the tractors 5V to avoid tractor faults if the preinstalled sensor is also used by the tractor itself.
Is that still a problem, if you use the differential measurement feature?
 
#4 · (Edited)
Sounds good so far, the VNH7070AS is able to split into half bridges, so also hydraulic valves could be managed.
Have seen at some newer Tractors a third Valve which completely disconnect the pressure from the 2 PWM valves, so a second VNH7070AS would be a good idea.

(Also some additional valves for "reaction" or Open Center could be handled without additional hardware.

Maybe optionaly the powering of the ADS could be disconnected in order to connect it with the tractors 5V to avoid tractor faults if the preinstalled sensor is also used by the tractor itself.
 
#7 ·
I’m really a fan of the ESP32.
For the design might it be useful to use a ready platform. I would suggest Adafruit feather. There you can switch to another chip, if the ESP32 won’t be there in some years. Additionally add-ons like Ethernet are easy by stacking in a feather wing. The cons are: its more expensive (5,- extra) and not all GPIOS are out.

For the general installation I would do a

roof unit:
ESP32 + F9P + BNO + MMA + 5V Power supply
WiFi for the NTRIP, UDP IMU signal, Bluetooth or Ethernet for GPS (NMEA)
We can use a waterproof housing (15x15x6cm) and put the antenna on top. So the only cable would be power. Additionally we can add a Battery and a charge controller so it’s a mobile unit for finding landmarks.

Separate Steercontroller:
ESP32 + ADS + IBT + 12->24 stepup
Wifi for UDP steerdata

Separate Section control via WiFi UDP

So if using WiFi and Bluetooth, no cable except of power to the Computer.

The software for the ESP32 and the code for AOG is already done/in testing…..

All units are simple in wiring by taking I2C.

Just my 2ct

Greeting Matthias
 
#17 · (Edited)
I am building a power supply PCB board with Power In, Power Out (Drive Motor), 8V, 5V, 3.3V and a filtered 5V output to sourced to the 16 bit ADC and source voltage for the WAS.

The attached screenshot of my oscilloscope shows three traces, the Yellow trace is the output of the DC-DC buck converter converting from 13V to 8V, the Blue trace is the output of my Low Drop Out (LDO) 5V regulator, and the Pink trace is the output after my low pass filter (capacitance multiplier) circuit (6.7V).

The vertical scale is set to 50.0mV per division for all three traces. As you can see the output of the DC-DC converter adds a lot of switching noise, almost 100 mV peak to peak. For any analog to digital converter, 10 bit on Arduino or a 16 bit ADC this would be troublesome. Putting the output through a 5V regulator does reduce the noise quite a bit but it is still in the 30 mV range, which may be completely acceptable for most applications. I wanted to reduce the noise even further so I put the output of the DC-DC converted through an "Active" low pass filter. This virtually eliminated all of the switching noise from the DC-DC converter. The input voltage to my filter is 8V while the output was at 6.7V for my given load. Since I will only be driving my 16 ADC and WAS with this source I will still have plenty of head room for my LDO 5V regulator to give a rock solid 5V.

My "active" filter consist of 1 x 56 Ohm resistor, 1 x 47uF cap, and 1 x tip112 darlington pair transistor. Your mileage may vary but this setup should work for my application.
 

Attachments

#23 ·
Your knowledge is impressive! Pardon my lack of knowledge here, I'm just trying to learn what is going on... What is the 8V for for in this power supply? Also on a more basic level would the intention of this PCB power supply be to hook straight to the battery (with appropriate fuses of course)? Should we have a power output for charging the tablet/laptop as well? Has anyone traced or figured out how much current is is being drawn with all of these devices combined?

My guess is that we would need a fairly heavy gauge wire in to this power supply board if we are powering these high current items like electric motors/H-bridges etc. My knowledge of PCB manufacturing is basically nil, but is it common to have power supply PCBs with higher current devices?
 
#18 ·
Hello,

Very good thing to develop a dedicated pcb for autosteer.
(I've done it on a veroboard with 12 V DCDC - BNO055 - MMA8251 - ADS1115 - PWM drivers around the nano, and this is a nightmare)

Take a chinese 3 V or 5 V DCDC suply, it can handle up to 40 V at the input. Of course add Shotkky diod (or MOSFET) for reverse polarity and fuse.

For the ADS1115, I've made two differential measurements
One for measuring the supply (ADS1115 max analog input is VDD + 0.3)
The other one is differential : one input connected to the steering potentiometer the other one at the middle point of a resistor divider (so offset is near 0)

If you can share a drawing of the schematic, I'm interested.

Best regards
francois
 
#19 · (Edited)
I attached my current state of the PCB. I hope there is enough time on Sunday to build a (mostly mechanical - 4 layer design only two layers for milling) prototype of the pcb. If that's okay and some basic tests works too (e.g. communication between ESP and F9P using external power) I wanted to build a full prototype. And after that I wanted to put the whole project on github.

Using the (currently unused) second Input of the ADS1115 for VCC is a good idea, I'll add that for my pcb too.
Any additional hints are welcome.



greetings
 

Attachments

#21 ·
francois, My design is a copy of ropecope's pcb design that you can find on page 287 of the AgOpenGPS thread. He has been a great help by supplying his cad files. I have attached a very cude schematic of the regulation side of my board. This is mostly in block diagram form so you will still need to dig into the datasheets to see how each component is terminated and the sizes and types of coupling caps to use.

Last year I only used prototype PCB boards and termination bars to connect the power/ground and it was a nightmare. There is a learning curve to building your own PCB, but overall it is so much easier and nicer looking too. Plus you don't have to worry about a random wire coming loose and causing issues. I am not ready to share my cad files just yet since I have not sent it out for manufacturing and with the Chinese new year coming up I probably wont have the PCB in my possession until late February to test out and make sure there are no unexpected oscillations. With the high gain of the TIP112 I was having bad high frequency ossications, 200mV P to P at 1 MHz, until I biased the transistor correctly.
 

Attachments

#26 ·
LarsVest - The TIP112 is part of the "Active" Low Pass filter. Check out this youtube video
for the full description on how this works.

WTalen - I am using a DC-DC converter to decrease the VIN to the voltage regulators. Linear voltage regulators are basically variable resistors. There is an inherent voltage drop across a regulator which heats up the regulator due to the power consumption. A supply of 13V will need to be dropped to 5V. I plan on powering everything with my power supply board Arduino, roll, ADC, WAS, arduinosimple ublox zed-F9P, LoRa radio, some LEDs, and maybe some 5V relays. If all of this consumes 300mA or 0.3A the regulator will need to drop 8V @ 0.3 A. Power = Voltage X current so 8X0.3 = 2.4 W. The regulator will need to dissipate 2.4W of energy, this does not seem like a lot but even using a big heat sink of 16C/W results in a temp rise of 38.4 degrees C over ambient. If the tractor cab 21C the 7805 silicon temp would be almost 60C. 60C is an acceptable temperature but it requires a big heatsink, which takes up a lot of room on a 80x80 mm pcb (free version of Eagle PCB). I am stepping down 12 to 8V to reduce the power dissipation required for my regulators.

Brian - Correct the TIP112 will drift with temperature that is why I am filtering the output directly off the 8V rail. Even with 200 mA of load the output of my "active" filter was still at 6.7V which is plenty of head room for my LDO regulator. Probably don't need a reference voltage as long as the output is stable. My small transistor circuit is designed to filter out high frequency switching noise. I have only tested this circuit by powering it with my linear lab power supply, further testing in a vehicle will be next.
 
#29 ·
Agree 100%! There are many ways to skin a cat. The best thing about open source is that you get a lot of ideas on how something should work with many different opinions on implementation. In the end differing opinions will only result in a better finished product. Just think how far this has come since last year. We are now talking about PCB prototypes with defined parts list to build a fully working setup.

In the end the KISS (Keep it simple, stupid) method usually wins out. A power supply with multiple linear regulators would be super simple cheep and very stable.
 
#30 ·
Just working on schematic for "default" board. This one has input protection, wheel angle sensor separate supply, switching 12v to 5v HW-411 module and can be used with either usb or ethernet, drive 1 Cytron for steer motor or 2 for hydraulic valve steering.Uses the common 3.3v MMA powered by nano 3.3v reg. Only one sided pcb for easy diy. Not all labeled yet, done in Eagle Cad Pro 7, so it can be loaded into the new trial version 9.1 that only has a size limit of 12 inches square if you want to do mods.


But this will give a good stable base that the required parts list can be made, a single INO, and make the wiki a whole lot easier. If people want to do their own thing, they can, but at least there is 1 that can be well documented for successful completion by anyone. I was tired of programming so I thought I would kick the dust off my pcb skills lol.



Thoughts?
 

Attachments

#38 ·
The switch inputs really need esd, short circuit, and over voltage protection. The WAS analog input also should have protection, and the PWM drivers should at least have inline resistors. If a 3.3v MMA is used the I2C lines need 300 ohms in series as well. 0.1 uf decoupling also should be on all Vcc lines adjacent to every device.

The tractor is a harsh environment and the arduino is designed to be used by children in a school lab environment. The addition of a few schottky diodes and resistors will save a lot of trouble and dramatically increase reliability. The arduino has power supply clamp diodes internally, but they certainly aren't big enough or fast enough.
 
#39 ·
The switch inputs really need esd, short circuit, and over voltage protection.
power supply has BTS432E2

Description:

High side power switch with integrated vertical power FET, providing embedded protection and diagnostic functions.

Summary of Features:

Load dump and reverse battery protection1)
Clamp of negative voltage at output
Short-circuit protection
Current limitation
Thermal shutdown
Diagnostic feedback
Open load detection in ON-state
CMOS compatible input
Electrostatic discharge (ESD) protection
Loss of ground and loss of Vbb protection2)
Overvoltage protection
Undervoltage and overvoltage shutdown with autorestart and hysteresis
Benefits:

High load current capability
High inrush current capability
Very high energy capability
Capable for 24V applications
Integrated protection functionality
Integrated diagnosis functionality
Target Applications:

Automotive Body & Convenience
Power Distribution
Relay Replacement
Fuse Replacement
Heating Applications
Truck & Agriculture (24V)
Industrial Automation

The WAS analog input also should have protection, and the PWM drivers should at least have inline resistors. If a 3.3v MMA is used the I2C lines need 300 ohms in series as well. 0.1 uf decoupling also should be on all Vcc lines adjacent to every device.

The tractor is a harsh environment and the arduino is designed to be used by children in a school lab environment. The addition of a few schottky diodes and resistors will save a lot of trouble and dramatically increase reliability. The arduino has power supply clamp diodes internally, but they certainly aren't big enough or fast enough.
We'll do this
 

Attachments

#43 ·
On the Inputs the resistors for the voltage divider are calculated to tolerate up to 15V (putting "raw 12V" on the autosteer/workswitch inputs. Lower voltages can be detected using voltage sensing).
My beta version PCB (after a few minor changes compared to the already published version) is currently on it's way. Hope I receive it next week. In two weeks I have holidays, and then I could assemble it (hopefully soldering the MMA isn't too difficult) and test the design. (Currently my main concern is the power supply, if the simple LDOs are okay or will get too hot.)