From 850fe3fca2121844ecb79817c91b9984f65d530d Mon Sep 17 00:00:00 2001
From: Lakshaya Singhal <99656701+LakshayaSinghal@users.noreply.github.com>
Date: Fri, 31 Mar 2023 00:47:03 +0530
Subject: [PATCH] Updates to README for SRA BOARD 2023 (#25)
* added pinout diagrams for mpu,lsa and sra boards
* changed README to include pinout images and made changes to README with latest changes
* fixed README to show images
* Minor changes to README for new SRA BOARD, added new images
* minor changes
---
README.md | 77 +++++++++++-------
documentation/assets/A4988_Stepper_Motor.png | Bin 0 -> 469389 bytes
documentation/assets/normal_mode.jpeg | Bin 142673 -> 32729 bytes
documentation/assets/parallel_mode.jpeg | Bin 112634 -> 28639 bytes
documentation/assets/pcb_power.jpeg | Bin 0 -> 7203 bytes
.../images/LSA_images/Lsa_back_pinout.png | Bin 0 -> 263510 bytes
.../images/LSA_images/Lsa_front_pinout.png | Bin 0 -> 214036 bytes
documentation/images/LSA_images/lsaconn.png | Bin 0 -> 785517 bytes
.../images/MPU_images/Mpu_front_pinout.png | Bin 0 -> 232669 bytes
.../images/board_images/front_side_pinout.png | Bin 0 -> 903612 bytes
sensors_2023/lsa/README.md | 34 ++++----
11 files changed, 65 insertions(+), 46 deletions(-)
create mode 100644 documentation/assets/A4988_Stepper_Motor.png
create mode 100644 documentation/assets/pcb_power.jpeg
create mode 100644 documentation/images/LSA_images/Lsa_back_pinout.png
create mode 100644 documentation/images/LSA_images/Lsa_front_pinout.png
create mode 100644 documentation/images/LSA_images/lsaconn.png
create mode 100644 documentation/images/MPU_images/Mpu_front_pinout.png
create mode 100644 documentation/images/board_images/front_side_pinout.png
diff --git a/README.md b/README.md
index 70b4ad2..e504f11 100644
--- a/README.md
+++ b/README.md
@@ -25,23 +25,24 @@
-
+
-# SRA Board 2021-2022
+
+# SRA Board 2023
The SRA board is a development board based on ESP32 with on-board peripherals like programmable LEDs, switches, sensor ports for Line Sensor Array and MPU-6050, protection circuit for over-current and reverse voltage and motor drivers.
![](/documentation/assets/3d_sideview.png)
## Table of Contents
-- [SRA Board 2021-2022](#sra-board-2021-2022)
+- [SRA Board 2023](#sra-board-2023)
- [Table of Contents](#table-of-contents)
- [Board Images](#board-images)
- [About the Project](#about-the-project)
- [Getting Started with a Development Board](#getting-started-with-a-development-board)
- - [Major Changes for 2022](#major-changes-for-2022)
+ - [Major Changes for 2023](#major-changes-for-2023)
- [Notable problems in the previous SRA Boards (2019)](#notable-problems-in-the-previous-sra-boards-2019)
- [Notable problems in the current SRA Board 2022](#notable-problems-in-the-current-sra-board-2022)
- [3D Models](#3d-models)
@@ -61,6 +62,11 @@ The SRA board is a development board based on ESP32 with on-board peripherals li
+- **Pinout**
+
+
+
+
## About the Project
- This development board is used for the [Wall-E](https://github.com/SRA-VJTI/Wall-E) and [MARIO](https://github.com/SRA-VJTI/MARIO) workshops conducted by [SRA](https://github.com/SRA-VJTI).
@@ -114,20 +120,24 @@ In general, every development board has the following basic features:
> Now that we covered basics of development boards, let us talk about the changes made in the new design.
-## Major Changes for 2022
-
-| Feature | SRA Board 2019 | SRA Board 2020 | SRA Board 2022 |
-|:----:|:-------:| :-----: | :-----: |
-|[12V to 5V](#7805-5v-linear-regulator-to-lm2596-buck-convertor) | LM7805 Linear Regulator | LM2596 Buck Convertor | LM2576-S Buck Convertor |
-|[5V to 3.3V](#ld33-33v-to-ams1117)| LD33 | AMS1117-3.3 | AMS1117-3.3 |
-|[Reverse Voltage Protection](#reverse-voltage-protection-diodes-to-p-mosfet) | Diodes | P-MOSFET | Diodes |
-|[Motor Driver](#l298n-to-tb6612fng)| L298N| TB6612FNG | TB6612FNG |
-|[No. of Motor Channels](#motor-driver-modes)|2|4|4|
-|[No. of Switches](#moving-back-to-the-vintage-bar-graph-leds-and-more-switches)|2|4|4|
-|[No. of LEDs](#moving-back-to-the-vintage-bar-graph-leds-and-more-switches)|2|8|8|
-|[Over Current Protection](#protection-against-over-current) | Bulky Glass Fuses | Bulky Glass Fuses | PTC Resettable Fuses|
-|[Sensor Port Connectors](#protection-against-over-current) | FRC (Fused Ribbon Cable) Connectors | JST (Japan Solderless Terminal) Connectors | JST Connectors |
-|[Component Type and Board Size](#component-type-and-board-size) | THT (Through Hole), Big | THT (Through Hole), Big | SMD(Surface Mount Device), Smaller|
+## Major Changes for 2023
+
+| Feature | SRA Board 2019 | SRA Board 2020 | SRA Board 2022 | SRA Board 2023 |
+|:----:|:-------:| :-----: | :-----: | :-----: |
+|[12V to 5V](#7805-5v-linear-regulator-to-lm2596-buck-convertor) | LM7805 Linear Regulator | LM2596 Buck Converter | LM2576-S Buck Converter | LM2576-S Buck Converter |
+|[5V to 3.3V](#ld33-33v-to-ams1117)| LD33 | AMS1117-3.3 | AMS1117-3.3 | AMS1117-3.3 |
+|[Reverse Voltage Protection](#reverse-voltage-protection-diodes-to-p-mosfet) | Diodes | P-MOSFET | Diodes | Diodes |
+|[Line Sensing Arrays (LSA)](#lsa_2023) | Photodiodes| Photodiodes| Photodiodes| IR Sensors |
+|[Number of LSA Sensors](#num_of_sensors)| 4| 4| 4| 5 |
+|[Motor Driver](#l298n-to-tb6612fng)| L298N| TB6612FNG | TB6612FNG | TB6612FNG |
+| [Stepper Motor Driver](#stepper-motor-driver-port-a4988) | - | - | - | A4988 |
+|[No. of DC Motor Channels](#motor-driver-modes)|2|4|4|2|
+|[No. of Stepper Motor Channels](#stepper-motor-driver-port-a4988)|0|0|0|1|
+|[No. of Switches](#moving-back-to-the-vintage-bar-graph-leds-and-more-switches)|2|4|4|4|
+|[No. of LEDs](#moving-back-to-the-vintage-bar-graph-leds-and-more-switches)|2|8|8|8|
+|[Over Current Protection](#protection-against-over-current) | Bulky Glass Fuses | Bulky Glass Fuses | PTC Resettable Fuses| PTC Resettable Fuses|
+|[Sensor Port Connectors](#protection-against-over-current) | FRC (Fused Ribbon Cable) Connectors | JST (Japan Solderless Terminal) Connectors | JST Connectors | JST Connectors |
+|[Component Type and Board Size](#component-type-and-board-size) | THT (Through Hole), Big | THT (Through Hole), Big | SMD(Surface Mount Device), Smaller| SMD(Surface Mount Device), Smaller|
- ### **7805 (5V linear regulator) to [LM2576/96 Buck Convertor](https://www.youtube.com/watch?v=m8rK9gU30v4)**
- The greater efficiency, output current and reliability of LM2576/96 were the reasons for this change.
- The efficiency of LM2576 is up to 92% which is significantly better than 7805. The LM2576 can provide current up to 3A, so the MARIO workshop manipulator can now be run using onboard regulator.
@@ -152,18 +162,24 @@ In general, every development board has the following basic features:
-
+- ### **Stepper Motor Driver Port ([A4988](https://www.tme.eu/Document/25459777e672c305e474897eef284f74/POLOLU-2128.pdf))**
+ - In the Previous and older editions, there were two ports for TB6612FNG Motor Drivers but **it has been updated to one TB6612FNG and one A4988 Stepper Motor Driver in the current SRA Board (2023).**
+ - A4988 Stepper Motor Driver **a microstepping driver for controlling bipolar stepper motors** which has built-in translator for easy operation. This means that we can control the stepper motor with just 2 pins from our controller, or one for controlling the rotation direction and the other for controlling the steps.
+ - The Driver provides five different step resolutions: full-step, haft-step, quarter-step, eight-step and sixteenth-step. Also, it has a potentiometer for adjusting the current output, over-temperature thermal shutdown and crossover-current protection.
+
+
+
- ### **Motor Driver Modes**
- - The new edition has 2x TB6612FNG motor drivers which allow a maximum of 4 motors to be controlled. This motor driver is characterized by its operation in two modes - **Normal mode** and **Parallel mode**:
+ - The new edition has 1x TB6612FNG motor drivers which allow a maximum of 2 motors to be controlled. This motor driver is characterized by its operation in two modes - **Normal mode** and **Parallel mode**:
1. **Normal Mode**
- - As discussed earlier, the new design has two motor drivers. Each TB6612FNG can control two motors. Therefore, using two motor driver one can control 4 motors using 8 GPIO's of ESP32.
+ - As discussed earlier, the new design has two motor drivers. 1x TB6612FNG and 1x A4988 Stepper motor driver. Therefore, using 1x TB6612FNG motor driver one can control 2 motors using 4 GPIO's of ESP32.
- E.g.: If pin 32 is HIGH(IN1 = HIHG) and pin 33 is low(IN2 = LOW) then motor 1 moves in the forward direction.
- - So in normal mode, 4 motors can be connected to the board, with a per channel/motor current capacity of 1.2A.
+ - So in normal mode, 2 motors can be connected to the board, with a per channel/motor current capacity of 1.2A.
1. **Parallel Mode**
@@ -173,8 +189,8 @@ In general, every development board has the following basic features:
- The parallel mode is a special feature, used for high-rated motors, requiring more than the 1.2A current limit.
- - In this mode, the channel's directional pins and output pins are shorted; only one motor is connected to a motor driver i.e. two channels, giving a current capacity of 2.4A. Thus, two high rated motors can be controlled using ESP32.
- - Note: The directional pin shorting is done by a manual DPDT switch. If the user turns on TB_A switch then the first motor driver goes into the parallel mode and its directional pins are shorted, where GPIO connections are IN1 = IN3 = 25 and IN2 = IN4 = 26. If TB_A switch is off, then the first motor driver goes into normal mode where IN1 = 32: IN2 = 33: IN3 = 25: IN4 = 26. This is all done automatically. Also for parallel mode, the J1, J2, J3 and J4 junctions need to be shorted.
+ - In this mode, the channel's directional pins and output pins are shorted; only one motor is connected to a motor driver i.e. two channels, giving a current capacity of 2.4A. Thus, one high rated motors can be controlled using ESP32.
+ - Note: The directional pin shorting is done by a manual DPDT switch. If the user turns on TB_A switch then the first motor driver goes into the parallel mode and its directional pins are shorted, where GPIO connections are IN1 = IN3 = 25 and IN2 = IN4 = 26. This is all done automatically. Also for parallel mode, the J1 and J2 junctions need to be shorted.
- ### **Moving back from the vintage Bar-graph LEDs to LED array and more switches**
@@ -230,10 +246,8 @@ In general, every development board has the following basic features:
## 3D Models
-- 3D preview of the *[SRA Board 2022](https://a360.co/3c1Rjyv)*
-
- 1. The complete 3D model (.step) file of [SRA Board 2020](./3d_models/sra_board_model/sra_dev_board_2022.step)
- 2. The 3D models of motor driver, LEDs, ESP32 etc.: [3d models of other components](./3d_models/)
+1. The complete 3D model (.step) file of [SRA Board 2023](./3d_models/sra_board_model/sra_dev_board_2023.step)
+2. The 3D models of motor driver, LEDs, ESP32 etc.: [3d models of other components](./3d_models/)
## Milestones
@@ -247,10 +261,11 @@ In general, every development board has the following basic features:
## Contributors
-- [Dhairya Shah](https://github.com/dhairyashah1): *Designer*
-- [Omkar Bhilare](https://github.com/ombhilare999): *Mentor*
+- [Chinmay Lonkar](https://github.com/ChinmayLonkar): *Designer*
+- [Dhairya Shah](https://github.com/dhairyashah1): *Mentor*
+
diff --git a/documentation/assets/A4988_Stepper_Motor.png b/documentation/assets/A4988_Stepper_Motor.png
new file mode 100644
index 0000000000000000000000000000000000000000..0739e75cb09462f50289eebb3b6bae0ec14dd0ce
GIT binary patch
literal 469389
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