
Rifle and sensors
DAlexis/caustic-lasertag-system
Caustic project is a full-featured indoor and outdoor lasertag system

Quadcopter design made from scratch
Quadcopter flight controler is an open-source printed circuit board by KNEAGHUST, from the KNEAGHUST/quadcopter repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 32 × 44 mm with 79 parts on 82 nets, routed with 525 tracks and 77 vias.
It is built around the NRF24L01, BMP280 and MPU-6050, with the USBLC6-4, DMN2056U and BC817 among its other parts. Its parts include 20 connectors, 19 resistors, 18 capacitors, 6 diodes and 6 transistors. It belongs with the robots and motor control and sensors and measurement boards and the STM32 boards of this library.
The goal of the project is to create a working model of a quadcopter UAV, which can be controlled with a Xbox controller. The project utilises the MPU6050 inertial measurement unit, which combines MEMS accelerometer and gyroscope into a single IC. The combination of sensor readings from the IMU combined with an adequate mathematical model and a regulating system allows to make a quadcopter with a stable control system.

The MCU used in the project implementation is STM32F103C6T6, an ARM Cortex-M3 mi- crocontroller, containing 32Kbytes of ROM. F1303 has built-in hardware support for I2C and SPI busses used for data transmission between on-board peripherals. The MPU6050 has been used as a sensor. It is an inertial measurement unit (IMU), a MEMS integrated circuit combining in itself an accelerometer and a gyroscope. For easy and intuitive reading of the sensor data at the code level, a library for initialising and handling the MPU has been written. It uses the built-in I2C bus which is used to exchange data between the IMU and MCU. The transmission is made in 400kHz mode. In order to save MCU execution time, a DMA controller has been used, allowing for sending data from RAM to the peripheral. Similarly, a library for nRF24L01 radio module has been written. nRF is being used for digital radio transmission between the UAV and a PC. It is connected to the MCU by the SPI bus and also uses the DMA mechanism. Another nRF connected to the PC is used to communicate with the quadcopter. The transceivers are used in order to read telemetry data and for piloting the UAV using an Xbox controller connected to the PC.

To keep the UAV stable it is essential to keep it at a set (stable) angle during movement. For instance, when we want the drone to fly up vertically, the roll and pitch angle have to be set to 0 degrees. The IMU supplies the data about displacement and angular velocity and a suitable mathematical model processes the data in order to estimate the angles. Finally the integration of data from both sensors with the help of filtration algorithms, such as complementary filter or Kalman filter allows us to gain precise information about the angles and for effective stabilisation of the quadcopter during flight. In our project we used the Kalman filter. It is an aimed at estimating the actual state of the system based on the observer measurements with Gaussian noise. The algorithm works in two main steps: estimation of the state of the system based on previous state and correcting it during the next measurement. Kalman filter uses the mathematical model and data about Gaussian noise in order to minimalise the estimates and measurement unceirtanties. The angle estimates and yaw angular velocity is fed into the regulation system consisitng of three PID regulators for every quantity. The PID regulator works by minimising the difference between the actual state of the system and a desirable reference state. It contains three components: proportional (P), which reacts proportionally to current deviateion, integral (I), which accumulates the deviation as time passes and differential (D), which takes into account the rate of change of the difference. The output of the PIDs is a duty cycle fed into a signal mixer, which sets the duty cycle for each of the motors.
More detailed documentation has been placed in the project repository.

| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | 100n | Capacitor_SMD:C_0805_2012Metric | C2, C3, C4, C5, C17, C18, C19 |
| 5 | 100k | Resistor_SMD:R_0805_2012Metric | R5, R10, R12, R14, R16 |
| 5 | DMN2056U | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q5 |
| 4 | 01x02_Pin | Connector_PinSocket_1.27mm:PinSocket_1x02_P1.27mm_Vertical | J1, J5, J6, J7 |
| 4 | 330 | Resistor_SMD:R_0805_2012Metric | R11, R13, R15, R17 |
| 4 | D_Schottky | Diode_SMD:D_SOD-123F | D2, D3, D4, D5 |
| 3 | 10k | Resistor_SMD:R_0805_2012Metric | R3, R8, R9 |
| 3 | SolderJump | Jumper:SolderJumper-2_P1.3mm_Open_Pad1.0x1.5mm | JP1, JP3, JP4 |
| 2 | 10n | Capacitor_SMD:C_0805_2012Metric | C6, C14 |
| 2 | 18p | Capacitor_SMD:C_0201_0603Metric | C10, C11 |
| 2 | 2k2 | Resistor_SMD:R_0805_2012Metric | R7, R18 |
| 2 | 4k7 | Resistor_SMD:R_0805_2012Metric | R1, R4 |
| 2 | LED | LED_SMD:LED_0805_2012Metric | D1, D6 |
| 1 | 0.1u | Capacitor_SMD:C_0805_2012Metric | C15 |
| 1 | 1.5k | Resistor_SMD:R_0805_2012Metric | R2 |
| 1 | 10u | Capacitor_SMD:C_0805_2012Metric | C13 |
| 1 | 1k | Resistor_SMD:R_0805_2012Metric | R19 |
| 1 | 1u | Capacitor_SMD:C_0805_2012Metric | C7 |
| 1 | 1x2 | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J3 |
| 1 | 2.2u | Inductor_SMD:L_Coilcraft_XxL4040 | L1 |
| 1 | 2n2 | Capacitor_SMD:C_0201_0603Metric | C16 |
| 1 | 4.7u | Capacitor_SMD:C_1206_3216Metric | C8 |
| 1 | 450k | Resistor_SMD:R_0805_2012Metric | R6 |
| 1 | 4u7 | Capacitor_SMD:C_0805_2012Metric | C12 |
| 1 | 6p8 | Capacitor_SMD:C_0805_2012Metric | C1 |
| 1 | 8MHz | QT532S-8.000MAAJ-T:XTAL_QT532S-8.000MAAJ-T | Y1 |
| 1 | BC817 | Package_TO_SOT_SMD:SOT-23 | Q6 |
| 1 | BMP280 | Package_LGA:Bosch_LGA-8_2x2.5mm_P0.65mm_ClockwisePinNumbering | U6 |
| 1 | CS | TestPoint:TestPoint_Pad_D1.0mm | J19 |
| 1 | Conn_01x03_Pin | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J20 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.0mm | J12 |
| 1 | MISO | TestPoint:TestPoint_Pad_D1.0mm | J14 |
| 1 | MOSI | TestPoint:TestPoint_Pad_D1.0mm | J13 |
| 1 | MPU-6050 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U5 |
| 1 | RX | TestPoint:TestPoint_Pad_D1.0mm | J18 |
| 1 | SCK | TestPoint:TestPoint_Pad_D1.0mm | J15 |
| 1 | SCL | TestPoint:TestPoint_Pad_D1.0mm | J11 |
| 1 | SDA | TestPoint:TestPoint_Pad_D1.0mm | J10 |
| 1 | STM32F103C6Tx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U2 |
| 1 | SWD | swd_conn:Pin_2x03_P2.54mm | J4 |
| 1 | TLV62569DDC | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | TX | TestPoint:TestPoint_Pad_D1.0mm | J17 |
| 1 | USB | 10118193-0001LF:AMPHENOL_10118193-0001LF | J2 |
| 1 | USBLC6 | Package_TO_SOT_SMD:SOT-23-6 | U3 |
| 1 | VDD | TestPoint:TestPoint_Pad_D1.0mm | J16 |
| 1 | buzz | Connector_PinSocket_1.27mm:PinSocket_1x02_P1.27mm_Vertical | J9 |
| 1 | nrf24l01 | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | J8 |
It measures 32 × 44 mm and has 4 copper layers, 1.6 mm thick.
79 parts, built around the NRF24L01, BMP280, MPU-6050 and USBLC6-4. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the KNEAGHUST/quadcopter repository on GitHub, at the commit this page was made from: the board is hardware/quadcopter-flight-controller-v0.2/quadcopter-flight-controler.kicad_pcb and its schematic hardware/quadcopter-flight-controller-v0.2/flight-controller-simulation.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

DAlexis/caustic-lasertag-system
Caustic project is a full-featured indoor and outdoor lasertag system


ra0sms/universal_control_console
Control console for any types of antenna's switches


Himanshukohale22/Flight_control_controller_V1.2
Hardware files for universal flight controller for small UAV's.



Biswajitpattanaik07/6_Axis_Robot_Controller
Axion is an open-source controller board for a 6-axis articulated robot arm. It is built around an STM32F103C8T6 and combines six servo outputs, six per-joint IMU inputs, and three ways to talk to the outside world…