Skip to the content
2 layers144.5 × 56.5 mmENC nrf-301-02-REV03, the printed circuit board in 3D

An efficient and reliable embedded system firmware for overhead crane applications. Developed using STM32G030C8T6 MCU, this project presents a specialized solution for encoder and decoder units, tailored to enhance the performance and safety of crane operations.

Size
144.5 × 56.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
143
Nets
72
Pads
355
Tracks, vias
1,046, 67
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
7 Jan 2024
Updated
8 Jan 2024

Overview

ENC nrf-301-02-REV03 is an open-source printed circuit board by Yadnik1, from the Yadnik1/Overhead-Crane-Control-System repository on GitHub. It is a 2-layer board of 144.5 × 56.5 mm with 143 parts on 72 nets, routed with 1,046 tracks and 67 vias.

Its parts include 30 resistors, 14 switches, 8 capacitors, 3 connectors and 2 ICs. It belongs with the STM32 boards of this library.

README

README.md

Overhead-Crane-Control-System

An efficient and reliable embedded system firmware for overhead crane applications. Developed using STM32G030C8T6 MCU, this project presents a specialized solution for encoder and decoder units, tailored to enhance the performance and safety of crane operations. The project firmware comprises three fundamental components: the encoder unit (remote control), the decoder unit (crane control system), and the EEPROM configuration software.

Decoder Unit

This code serves as the core control unit for an overhead crane system, managing bidirectional communication between master and slave devices using the NRF905 module. It detects the device's operational mode based on the state of the MODE_Pin and initializes the NRF905 module, shift registers, and relays during startup. The NRF905 module constantly listens for incoming data, with a rising edge on the DR_Pin indicating data reception. Upon receiving specific patterns like 0x40000000, it activates the NRF905 module and the system eventually, while 0x80000000 sets the receiver state to standby and turns off the system. Relay states are updated through shift registers to control crane operations.

Additionally, the code utilizes timer interrupts to enhance control. The HAL_TIM_Base_Start_IT(&htim3) function initiates timer 3 and enables its interrupts, allowing for precise timing operations. Timer interrupts can be used for various purposes within the code, such as coordinating time-sensitive tasks or ensuring precise timing for specific crane operations.

The code not only manages data reception and relay control but also implements crucial button toggle and interlock features. Button presses, particularly those involving button 3, are monitored and toggled through the button3_state variable. Interlock functionality is achieved by clearing relay bits associated with buttons 5 and 6 if both buttons are pressed simultaneously. These 2 functionalities are often used in overhead cranes for numerous applications apart from normal relay actuation.

The decoder firmware can be found in the Firmware folder in Decoder.c file.

Standalone Decoder Unit

Standalone Decoder Unit

Encoder Unit

The encoder unit interfaces with a set of buttons representing different crane functions, such as movement and relay control. The system relies on the NRF905 wireless module for communication between the encoder unit and the crane's decoder unit. The encoder unit continuously monitors the state of these buttons and generates a 32-bit pattern based on the button configuration. This pattern is then transmitted using the NRF905 module to the decoder unit, allowing it to interpret and execute the corresponding crane operations.

The encoder unit also incorporates timer interrupts, which are crucial for efficient button polling and data transmission. Timer interrupts ensure that button states are checked periodically, preventing excessive data transmission while maintaining responsiveness to button presses. Additionally, the code includes logic for switching on and off specific crane functions based on the received data, enabling the operator to control various aspects of the crane's operation remotely. Overall, the encoder unit plays a vital role in facilitating remote crane control, ensuring safety and precision in crane operations, and enhancing the efficiency of overhead crane systems.

The encoder firmware can be found in the Firmware folder in Encoder.c file.

Standalone Encoder Unit

Standalone Encoder Unit

Encoder-Decoder Unit Set

Encoder-Decoder Unit Set

Powered Encoder-Decoder Unit Set

Encoder-Decoder Unit Set

Additionally, I also worked towards the development of the two-sided encoder unit PCB as seen below:

PCB of the Encoder Unit

PCB of the Encoder Unit

EEPROM Configuration

The provided code serves as a critical component for configuring the decoder unit, facilitating the mapping of each key on the encoder to its respective relay on the decoder. This functionality is essential in scenarios where customization and flexibility are paramount, such as when an original equipment manufacturer (OEM) needs to provide a system that can adapt to the unique button-to-relay configurations of multiple clients. The code enables the OEM to initialize and manage memory structures that store the configuration data for different keys and sectors within the decoder. It supports both default settings and runtime customization of these configurations through AT commands received via UART.

The code's working involves several key aspects. First, it initializes the memory with default values for each key and sector, ensuring a consistent starting point. Second, it processes AT commands sent over UART to customize the configuration, allowing the OEM or clients to modify the relay assignments for specific keys dynamically. Third, it employs Flash memory to store these configurations persistently, ensuring that the settings are retained even after power cycles. Lastly, it provides feedback to the user or clients through debug messages sent over UART, facilitating troubleshooting and verification of the configurations. This code serves as a robust and adaptable solution for managing button-to-relay mappings in a versatile and client-specific manner, making it highly valuable for the OEM's system customization needs.

The EEPROM configuration firmware can be found in the Firmware folder in EEPROM.c file.

Testing and Configuring the Decoder Unit

Testing and Configuting the Decoder Unit

Final Application:

The final appliation can be as seen from the image below, where the power circuitry and the enclosure is applied on the encoder and decoder units before sending it to the end client.

Application Ready Overhead-Crane-Control-System

Final Crane System

Complete working of the system before can be seen in this video: https://bit.ly/48JevyT

Parts

143
QtyValueFootprintReferences
64DEVICENET:via_bare, , , , , , , , , , , , , , , +48
22Resistors_SMD:R_0603R1, R2, R3, R10, R11, R12, R13, R14, R18, R19, R20, R21, R22, R23, R24, R25 +6
13Mounting_Holes:MountingHole_2.2mm_M2_DIN965, , , , , , , , , , , ,
8DEVICENET:SW_ALPS_TACTSW1, SW4, SW5, SW6, SW8, SW9, SW12, SW22
6DEVICENET:SW_MARKQUARDSW2, SW3, SW7, SW10, SW11, SW21
5RResistor_SMD:R_0603_1608MetricR26, R27, R28, R29, R30
3Resistor_SMD:R_0603_1608MetricR15, R16, R17
2DEVICENET:2.54MM_BERGE_4PINJS-3, JS-4
2DEVICENET:HS_0603C6, C7
2CCapacitor_SMD:C_0603_1608MetricC4, C5
1Crystals:Crystal_HC49-4H_VerticalY1
1DEVICENET:CON_2.0MM_7PINJS-1
1DEVICENET:CON_2.0MM_6PINJS-2
1CON_2X5_2.54MMJ1
1Housings_QFP:LQFP-48_7x7mm_Pitch0.5mmU2
1DEVICENET:MS_0603C1
1DEVICENET:CONN_2X7_2.54MMJ2
1LEDs:LED_D5.0mm-4D14
1DEVICENET:2.5MM_BERGEJ5
1DEVICENET:RELAY_REED_L20W2.5SW_e1
1Diodes_SMD:D_0805D1
1Capacitors_ThroughHole:CP_Radial_D5.0mm_P2.00mmC8
1CDEVICENET:MS_0603C2
1CP1Capacitor_SMD:C_0603_1608MetricC3
1LInductor_SMD:L_0805_2012MetricL1
1TPS61020DRCRTPS61020DRCR:TPS61020DRCRIC1

More from Yadnik1/Overhead-Crane-Control-System

2
  • 2 layers144 × 56.5 mmENC nrf-301-02-REV05, the printed circuit board in 3D

    ENC nrf-301-02-REV05

    Yadnik1/Overhead-Crane-Control-System

    An efficient and reliable embedded system firmware for overhead crane applications. Developed using STM32G030C8T6 MCU, this project presents a specialized solution for encoder and decoder units, tailored to enhance the…

    140 parts4
  • 2 layers144.5 × 56.5 mmENC nrf-301-02-REV04, the printed circuit board in 3D

    ENC nrf-301-02-REV04

    Yadnik1/Overhead-Crane-Control-System

    An efficient and reliable embedded system firmware for overhead crane applications. Developed using STM32G030C8T6 MCU, this project presents a specialized solution for encoder and decoder units, tailored to enhance the…

    139 parts4

Similar boards

  • 2 layers307.3 × 117.3 mmBlahajergo, the printed circuit board in 3D

    Blahajergo

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    143 parts915
  • 2 layers82 × 54.5 mmDIMMCartridge heaters, the printed circuit board in 3D

    DIMMCartridge heaters

    GaudiLabs/OpenDrop

    Open Source Digital Microfluidics Bio Lab

    143 parts492GPL-3.0
  • 2 layers346.1 × 116.8 mmKbd classic, the printed circuit board in 3D

    Kbd classic

    osiweb/unified_retro_keyboard

    Project to provide keyboard replacements for various classic computers, as well as classic ASCII keyboard

    143 parts122
  • 2 layers87.5 × 77.5 mmPanel, the printed circuit board in 3D

    Panel

    jpconstantineau/NRF52-Board

    This Repository is a collection of NRF5x boards.

    143 parts100BSD-3-Clause
  • 2 layers84.1 × 47.3 mmFinalPCB, the printed circuit board in 3D

    FinalPCB

    daumemo/DIY-Signal-Generator

    DIY portable Wi-Fi enabled signal generator

    143 parts45
  • 2 layers200 × 88 mmUkiha draft, the printed circuit board in 3D

    Ukiha draft

    e3w2q/ukiha-keyboard

    small key pitch 5x12 ortholinear keyboard

    143 parts29MIT
  • 2 layers83 × 100 mmSolar module-1u si, the printed circuit board in 3D

    Solar module-1u si

    oresat/oresat-solar-hardware

    OreSat solar array designs and CAD

    143 parts28
  • 2 layers142 × 58 mmQLAMP main, the printed circuit board in 3D

    QLAMP main

    hisashin/qNinjaLite

    for LAMP

    143 parts24GPL-3.0

Questions

How big is the ENC nrf-301-02-REV03 PCB?

It measures 144.5 × 56.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ENC nrf-301-02-REV03 use?

143 parts. 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.

Where can I download the ENC nrf-301-02-REV03 KiCad files?

From the Yadnik1/Overhead-Crane-Control-System repository on GitHub, at the commit this page was made from: the board is Encoder PCB/ENC-nrf-301-02-REV03.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the ENC nrf-301-02-REV03 design in my own project?

Its repository states no licence, so its author keeps all rights: ask Yadnik1 before reusing the design.