Giter Site home page Giter Site logo

doppelgrau / esp32-f9p-io-board Goto Github PK

View Code? Open in Web Editor NEW
34.0 9.0 8.0 6.53 MB

An IO-PCB (two motor-driver/H-bridge, CAN, RS232, ADS1115, relay, ethernet, ardusimple f9p compatible connector) with an ESP32 for 12V power, three 15V tolerant analog inputs, three 5V tolerant inputs.

License: Other

C++ 15.07% HTML 82.57% OpenSCAD 2.36%
pcb pcb-layout esp32 motor-driver gps f9p ethernet rs232 can-bus ads1115

esp32-f9p-io-board's Introduction

ESP32 F9P IO board

This PCB is a versatile IO plattform that provides computing power (ESP32) and IO interfaces to build GPS/RTK applications.

Hardware Overview

  • Power supply:
    • Input 9V-28V (labeld 12V on the board), external connection on J4.
    • Protected against wrong polarity (Diode D7 parallel to the relay K1)
    • Reduced inrush current (resistors R15/16 in serie with the starting diode D7 before the relay K1 closes and shortens the path).
    • V78E05-1000 (step down converter) PS1 generates 5V
    • AZ1117-3.3 LDO U2 generates 3V from the 5V supply.
    • 12A (slow) fuse soldered on the board. Recommended to use a 10A external fuse.
  • ESP32-WROOM-32 U1 for computing-power, wifi, Bluetooth
  • Arduino headers for the simpleRTK2B-F9P (uart 1 of the F9P connected)
  • Serial interfaces
    • one uart (IO13/14) on the Arduino headers for the F9P
    • one uart (IO0/2) next to the arduino headers on two pins (J2) for the new simpleRTK2Blight. Since the two pins have a special meaning during boot, pulling TX to GND during startup results in the ESP going into programming mode.
    • one uart (IO15/16) for RS232 on the D-Sub connector J16
    • one uart (IO1/3) on the USB-Uart converter (J14) - Also supports programming with "RTS/DTR"
  • I2C (IO32/33)
    • I2C with 3.3V logic level (J8 pin header, J13,17 qwiic connector)
    • I2C with 5V logic level (J7 pin header)
    • internal used adresses:
      • 0x1C - Magnetometer part of the LSM9DS1 (U12)
      • 0x43 - FXL6408 port extender (IC 1)
      • 0x48 - ADS1115 (U4)
      • 0x6A - Accelerometer part of the LSM9DS1 (U12)
  • CAN bus
    • Tranceiver (U2) + ESP32 integrated controler (TX IO5, RX IO35)
    • Termination resistor and sending messages can/must both be enabled with a jumper on J12
    • external connection J18
  • Ethernet:
    • internal MAC, connected to LAN8720A on IO17,18,19,21,22,23,25,26,27
      • IO17 Clock
      • IO18 MDIO
      • IO23 MDC
    • PHY-Reset controlled with FXL6408-GPI01
    • ETH-Address of the LAN8720: 0
  • IMU: 9 Axis, LSM9DS1 (U12). Magnetometer needs iron correction to be usable.
  • Outputs
    • One H-bridge/motordriver with two VNH7070AS (U3/5), (PWM IO4, FXL6408-GPIO6/7 direction). External connected on J4
    • One H-bridge/motordriver with one VNH7070AS (U9), (PWM IO12, FXL6408-GPI04/5 direction), external connected on J3
    • One Relay (K2) controlled on FXL6408-GPI03, external connected on J3
    • One status LED (D2) controlled on FXL6408-GPI02
  • Inputs
    • Three 15V tolerant (analog) inputs IO34, SENSOR_VN/36, SENSOR_VP/39, external connected on J1
    • Three 5V tolerant (analog) inputs on the ADS1115, first two cann be used to measure differential. Number four is hardwired to VCC/5V. External connected on J5
    • One Button (e.g. for entering configuration mode), on FXL6408-GPI00
  • Connectors:
    • J1 - 6 pin PTSM header. 15V tolerant inputs and 12V for easy cabeling if used as switch
    • J2 - 2 Pin Uart
    • J3 - 7 pin PTSM header. Outputs of second H-bridge, two times ground (for using as two half bridges) and the three pins for the relay (comm, no, nc)
    • J4 - 4 pin CCA header. Power input and output of the first motor driver/h-bridge
    • J5 - 5 pin PTSM header. Three ADS1115 inputs, 5V and GND for easy cabeling (e.g. linear potentiometer)
    • J7 - 4 pin header. I2C 5V logic level + GND and 5V
    • J8 - 4 pin header. I2C 3V3 logic level + GND and 3V3
    • J9, J10, J11 - 8 pin header. Socket for the simpleRTK2B F9P
    • J12 - 2x2 horizontal pin header. Used for jumpers to enable CAN termination and/or CAN TX
    • J13, J17 - qwiic connector. I2C 3V3
    • J14 - micro USB connector. Can power 5V and 3V3 part of the PCB. Electricaly not isolated! Used for programming the ESP32
    • J15 - RJ45 ethernet connector
    • J16 - D-Sub connector (male). RS232
    • J18 - 2 pin PTSM header. CAN bus

esp32-f9p-io-board's People

Contributors

doppelgrau avatar mnltake avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32-f9p-io-board's Issues

add an other uart for simpleRTK2Blite

To use two ardusimple F9P (simpleRTK2B and simpleRTK2Blite) for RTK + heading with NTRIP a second UART is needed with an interface so it can be connected to the top module.

  • If you use an LR kit with corrections coming over XBee, you only need to connect to 1 UART. This UART will give RTK position + heading, but only in UBX protocol
  • If you use NTRIP server, you will need 2 connections, one to send corrections to simpleRTK2Blite, and another one to read RTK position+heading in UBX protocol.

Check solder paste stencil

  • Same behavior for all connectors
  • All pads on USB for better mechanical connection
  • maybe less paste for the port multiplier

Case: Basic-1xF9P - Thinner top side

Evaluate if the parts over the LEDs can be made/printed thinner.
If printed with transparent filament it should be more clear and with two color prints it would look nicer.

Basic-1xF9P: Screws

Some Redesign do allow larger screws, the M2 work but not enough reserves to be comfortable.

Better part names/values

Change the part names/values in such a way, all relevant parameters are visible (e.g. for capacitors not only the capacity but also the allowed voltage)

Easier to test

Make sure everything can be tested without the need of external cables (using pogo pins)

Reduce M1 to one VNH707AS

Evaluate if there are any drawbacks (for usual motors should be more than enough).
If no drawbacks, eliminate or use for additional (digital) outputs

Better software examples

Provide better examples (maybe libraries?) for:

  • IMU iron correction
  • IMU gyro correction
  • using the port expander
  • using the VNH7070

Can I do everything with one ESP32?

Hello doppelgrau.
It is a wonderful work!
I want to use this board for NTRIP Client to F9P, and AutoSteer to AgOpenGPS .
Do you think it is possible in ONE esp32?

Check optional parts

Check if there is an option to put different IMUs on the board and only populate the requested (MMA, LSM9DS1 ...)

Check IO protection

Related a bit to #37, check if protection against to high/reverse voltage should be improved

Improve Readme

Include a good documentation what the board has / what parts, internal and external inout

physical location of the LSM9DS1

Currently placed near the RS232 connector. but connectors and cables introduce metal in the area that can disturb the magnetic field after calibration.
Maybe better placed under the F9P, magnetic error should be more constant there => after calibration not a huge problem

More flash

Evaluate if a ESP32 with more flash is an option, so larger Software can use OTA-Updates

divide power supply

Divide the power supply of the PCB from the Power suppl to the motor driver.
So the motordriver can be easily driven with an other voltage (e.g. 24V)

Change xbee-Uart Pins

Change the Xbee uart PINs with the pwm pins so there won't be any problems if pulled to gnd during startup
(Test before it not pulled down from the VNH and if PWM s okay)

Rotate PCB Labels

The following labels are inverted relative to others:

  • ESP-F9P-IO-Board
  • Version 2.2
  • GND / 12V / M1A / M1B
  • Uart / RX / TX

C35 Capacitance Value

Thank you for answering my question!
I noticed a small point.

In the circuit diagram "C35" is "100nF/16V"
But in "Parts.ods" C35's Mouser Partnumber is "603-CC805KRX7R9BB103"
it's 10nF.

I think Row"C35,C47,D2,D5,D9" Colum"Mouser Partnumber-" is wrong.

PIN for programming mode

README.md

one uart (IO0/2) next to the arduino headers on two pins (J2) for the new simpleRTK2Blight. Since the two pins have a special meaning during boot, pulling RX to GND during startup results in the ESP going into programming mode.

pulling TX to GND ,I think

Closer look at CAN-interface

  • Improve Termination 2x60 Ohms to Capacitor (one end GND) instead of 120Ohm. Reduces Common Mode Problems
  • Check ESD, improve with something like a PESD2CAN

Reduce BOM

Tests with the oscilloscope show that the inductor in front of the ADS1115 is not much more effective than the RC in front of the LSM9DS1. So to make the BOM shorter changed the inductor to a resistor.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.