Datasheet, Design on Altium Drive
Designer | Cas Doornkamp |
Last Version | v4.2 |
Last Updated | 11 June 2022 |
There is a 24V -5V converter followed by a 5-3.3V converter. For the24-5V converter we use the TPS54332DDAR:https://www.ti.com/lit/ds/slvs875c/slvs875c.pdf?ts=1603276064222&ref_url=https%253A%252F%252Fwww.google.com%252F As for the chosen values, based on the calculations shown in the datasheet:
For the 5-3.3V converter we use the LD1117S33TR: https://nl.mouser.com/datasheet/2/389/cd00000544-1795431.pdf
We use the Xsens MTi-3 (uit de MTi 1-series) as IMU. https://drive.google.com/drive/u/0/folders/1vl0myIjebR3KWS5ZsLzqaVhCYPFw6MeU We have this one since gen1 and we want to contact Xsens again about the possibilities of getting new ones. The Xsens Inertial Measurement Unit (IMU) is responsible for measuring acceleration, rotational velocity, and current heading. The IMU provides data at 100Hz. This frequency would not give enough data to properly estimate the robot state, were it not that much of the filtering and processing is already done by the IMU. The IMU has its own frame of reference, initialized at boot time. This frame can deviate from the computer's frame, which takes the width and height of the field as x-, and y-axis. The computer sends camera data to the robot for calculating this deviation. The data provided by the IMU allows the robot to accurately execute commands from the computer. Instead of completely relying on the relatively slow feedback of the cameras, the robot can use the IMU data to precisely control its movements. The data of the camera can then be used to calibrate the drift in the IMU that builds up over time.
We currently use the STM32F767ZI. https://docs.rs-online.com/8a25/0900766b814da0a4.pdf In the STMCube and the schematics you can see which pins have which functions. With the chip shortage it is wise to check whether new ones are in stock so you will be able to make new prototypes when you want to. (I ordered extra at the end of the year so you shouldn’t have to worry about it for now ) The STM32F767ZI microcontroller is the brain of both the robot and the basestation. It runs at 150MHz, has 2MB Flash memory, 512KB RAM, and 14 timers. It supports UART, USART, SPI, QUADSPI, I2C, Full Speed USB, and more. The microcontroller has 144 pins. Via these pins, the microcontroller on the robot connects through all other peripherals on the robot. The pins visualized here are for the robot. The basestation has different names and functions assigned to its pins. The microcontroller is programmed using embedded C in combination with the HAL library. The VSCode editor is used in combination with the PlatformIO plugin.
The wireless transceiver we use is the EBYTE E28-2G4M12S SX1280 2.4G LoRa Bluetooth Module 2.4GHz Wireless rf Transceiver SPI Long Range BLE rf Transmitter 2.4g Receiver. This is the only component on the topboard we buy from aliexpress/amazon, so take longer delivery time into account. This one can also be reused really easily so if you need to, you can desolder them from older broken robots and reuse them. The SX1280 is used to wirelessly communicate between robots and the basestation. The basestation has two SX1280's, one for transmitting to the robot at 2.385GHz, and one for receiving from the robot at 2.395GHz. The robot has one SX1280 for both transmitting and receiving. At 2.4GHz, it can transmit up to 1.3Mbps in FLRC mode. It can send and receive packets of variable length up to 127 bytes.
The ID unit is a 4Way Surface Mount DIP Switch SPST. It MPN is IKD0403101 from APEM. The colors on the cap on top of the robot decide which ID it should be. Using this switch you can also let the robot itself know which ID it has. It is possible for 2 robots to have the same ID and they will get the same commands which can be really funny but also dangerous so please take this into account. The switches are numbered from 1 to 4, with 1 representing the least significant bit of the binary ID and 4 being the most significant. Example: If the switches are as follows: ON - OFF - ON - OFF, the ID should be 1*2^0 + 0*2^1 + 1*2^2 + 0*2^3 = 1 + 0 + 4 + 0 = 5.
Next to the ID switches is a set of 4 switches used for debugging and team setting purposes. As of the writing of this information, FT3 and FT2 do not have any function
The buzzer we use is the KPEG153 of Kingstate. https://docs.rs-online.com/f609/0900766b8068ec46.pdf . Ours is driven by the PMF250XNE. One resistor is put parallel as the buzzer has capacity and needs to discharge or it won’t make a sound. The value of this resistor is important for the sounds/loudness of the buzzer and from trial and error 1k deemed to be the best.
When the robot is booting in a normal mode without any errors, there are 3 different beep sequences right after each other:
[TODO: Add testing mode] [TODO: Add non-development branch detection]
The reset button is just a simple button bought at the STORES. And as the name indicates, it is for resetting.
The computer requires about 100ms to decide the next action for each robot. Within this time, a ball can move up to 65 centimeters per the official RoboCup rules. The computer is too slow to send a kick command fast enough for the robot to kick balls moving at high speeds. To allow the robot to kick a ball instantly, a ball sensor has been added. The ball sensor is a Neonode zForce AIR touch bar. It is placed at the front, aiming at where the robot would be able to kick the ball. The ball sensor scans at a rate of 200Hz. Between two scans, a ball can move at most 3.25 centimeters. The kicker has a width of 4.5 centimeters, thus the ball will always be in range. The computer can instruct the robot to anticipate the ball, and shoot it as soons as it is detected. The ballsensor allows for faster plays, which are harder to anticipate and defend against. The ball sensors have 2 different wires, one with red tape and one without/white tape. The red tape ones should be attached to TopBoard 3.4 and 4.0, the others to 3.3. If you attach the wrong ones, the ball sensors will break and that stuff is expensive and custom made so just don’t.
The wheel encoders we use are the ENX QUAD 24. The maxon QUAD encoder uses two standard Hall sensors to generate incremental quadrature output signals. They possess two channels (A, B) with single ended signals. The resolution is 1 impulse per turn. With quadrature encoding, 4 states per turn are available for detection of speed, direction, and position.
Updated 29-08-2023, using the Top Board 4.2 schematic and BOM
Designator | Order code | Component name | Description | Value |
B100 | Buzzer | |||
C100, C400, C401, C405, C500, C503, C504, C505, C506, C507, C600, C601, C602, C700, C703, C704, C705, C706, C707, C709, C710, C711, C712, C713, C714, C716, C718 | Capacitor | 100nF | ||
C300, C301, C302, C701, C702, C708, C715, C717, C719, C800, C801, C802, C803, C804, C805 | Capacitor | CAP 100nF 25V ±20% 0805 (2012 Metric) Thickness 1mm SMD | 100nF | |
C402, C403 | Capacitor | WCAP-PSHP Aluminum Polymer Capacitor, V-Chip, SMT, D8xH8.7mm, 68uF, 20V | 68uF | |
C404, C406 | Capacitor | 10uF | ||
C407 | Capacitor | 12.5nF | ||
C408 | Capacitor | 50pF | ||
C409 | Capacitor | 2.7pF | ||
C501 | Capacitor | Electrolytic Capacitor, 470 µF, 16 V, MCGPR Series, ± 20%, Radial Leaded, 1cm | 470uF | |
C502 | Capacitor | Electrolytic Capacitor, 470 µF, 16 V, MCGPR Series, ± 20%, Radial Leaded, 8 mm | 470uF | |
D400 | PMEG40T50EPX | Schottky Diode | DIODE SCHOTTKY 40V 5A CFP5 | 40V, 5A |
D500, D800, D801, D802, D803 | PTVS24VP1UP | Transient Voltage Suppressor | NXP TVS Diode, TVS, AEC-Q101 PTVS Series, Unidirectional, 24 V, 38.9 V, SOD-128, 2 Pins | |
ENC_LB800, ENC_LF800, ENC_RB800, ENC_RF800 | Connector | 2.54mm Pitch Right Angle Through Hole IDC Connector, Male, 10 Way, 2 Row | ||
F400 | Fuse | |||
FB300, FB400, FB600, FB601, FB602, FB700, FB701, FB702, FB703 | 742792641 | Ferrite Bead | WE-CBF SMT EMI Suppression Ferrite Bead, size 0603, 300Ohm, 2A | 300R, 2A |
IC300 | MC-28PLCC | IC Socket | MC-28PLCC - IC & Component Socket, 28 Contacts, PLCC Socket, 2.54 mm | |
IC400 | Low Dropout Regulator | LDO Regulator, 1.3A, 3.3 V | 1.3A, 3.3 V | |
J500 | 690357101272 | Connector | WR-MM Mini Module Connector, Male, THT, without Latch, with Polarization, Straight, 12p | |
J501 | 690357102472 | Connector | WR-MM Mini Module Connector, Male, THT, without Latch, with Polarization, Straight, 24p | |
J600 | DM3CS-SF | Micro SD Holder | CONN MICRO SD CARD HINGED TYPE | |
L400 | B82462-G4 | Inductor | EPCOS, B82462-G4 Shielded Wire-wound SMD Inductor with a Ferrite Core, 10 μH ±20% Wire-Wound 3.4A Idc | 10 μH ±20% |
LD0, LD1, LD2, LD3, LD3.3V, LD4, LD5, LD5V, LD6 | 150080SS75000 | LED | SMD mono-color Chip LED, WL-SMCW, Super Red | |
M100 | PMF250XNE | N-Channel MOSFET | ||
MAIN600 | Connector | JTAG and usb header | ||
P400, P401 | PMPB27EPA | P-Channel MOSFET | P-channel enhancement mode Field-Effect Transistor (FET) in a leadless medium power DFN2020MD-6 (SOT1220) Surface-Mounted Device (SMD) plastic package using Trench MOSFET technology. | |
P402 | Header Pins | Header, 2-Pin | ||
P403 | Header Pins | Header, 4-Pin | ||
P800, P801, P802, P803 | Connector | TopBoard side MotorDriver connector, 6-pins THR CMP-006-000018-1 | ||
R100, R102, R104, R106, R108, R110, R112, R115, R401 | Resistors | 1k | ||
R101, R103, R105, R107, R109, R111, R113, R114, R405, R407 | Resistors | 10.2k | ||
R400, R406 | Resistors | 1.96k | ||
R402, R403, R404 | Resistors | 150k | ||
R408 | Resistors | 270k | ||
R500, R501 | Resistors | 10k | ||
R600, R601, R602, R603, R604, R605 | Resistors | 47k | ||
R606, R607 | Resistors | 0R | ||
Rst100 | Button | TL 1105 - E switch | ||
SW100, SW101 | 418121270804 | Switch | WS-DISV 2.54 mm small compact SMD Dip Switch with raised actuator | |
SX600 | E28-2G4M12S | Wireless transceiver | EBYTE E28-2G4M12S SX1280 2.4G LoRa Bluetooth Module | |
U100, U501, U502, U800, U801 | 74AHCV541A | Octal Buffer | Octal buffer/line driver; 3-state | |
U400 | TPS54332DDA | Step Down Voltage Converter | Conv DC-DC Single Step Down 3.5V to 28V 8-Pin HSOP EP Tube | |
U500, U503 | NCA9306DC | Logic Level Converter | 2-bit bidirectional multi-voltage level translator; open-drain; push-pull | |
U600 | Microcontroller | High-performance and DSP with FPU, ARM Cortex-M7 MCU with 2 Mbytes Flash, 216 MHz CPU, Art Accelerator, L1 cache, SDR… | ||
U802, U803 | 74HC4050 | Non-inverting Level Shifters | Hex non-inverting HIGH-to-LOW level shifter | |
Y600 | 830208215109 | Crystal | WE-SPXO Simple Packaged Quartz Oscillator, SMT, IQXO-540, 24MHz, 3.3V |