PCB Design for Variometer

Job ID: 38719194

Budget: ₹1,500 – ₹12,500 INR

I need assistance in designing a schematic and PCB layout for a device powered by a 3.6V lithium-ion battery. The project involves using an ATmega328P microcontroller along with various sensors and components as outlined in the provided Arduino code. The final design should facilitate programming and charging via a USB-C connector, with specified current limits and additional features for user control.

Requirements -

Microcontroller:
ATmega328P: This will be the primary microcontroller for the project.

Power Management:
Battery: Use a 3.6V or 3.7V lithium-ion battery.
Charging IC: Integrate a TP4056 or TP4057 for battery charging.
Charging Current: The charging current should not exceed 0.1A (100mA).

USB-C Connector:
Include a USB-C connector for both programming and charging.
Ensure that the connections allow for data transfer and proper charging.

Buzzer:
Use a buzzer connected to pin 11 of the microcontroller.
Include a switch to toggle between high and low volume settings.

Additional Switches:
Implement an on/off switch for the device.
Include a separate switch for toggling the buzzer volume.

Sensors:
Integrate a BMP280 barometric pressure sensor.
Integrate a SSD1306 OLED display which comes in an off the shelf module.

Button Handling:
Include a button for user interactions, which will need to debounce to prevent false triggering. The button should be a 12x12mm.

Schematic and Gerber Requirements -

The output should clearly depict the following connections:
Battery connections to the charging IC and microcontroller.
TP4056/TP4057 connections for charging circuitry.
USB-C connections for charging and programming.
Wiring for the buzzer and its volume toggle switch.
Connections for the BMP280 sensor and the SSD1306 display.
Button connections with appropriate debounce handling.
It must also include all capacitors, resistors, transistors etc passive components for the proper functioning of the device.

Code Integration -

The schematic should support the following functionalities as per the provided Arduino code:
Display & Control: Display relevant information using the SSD1306 and navigate the menu using the button.
Pressure Sensor Reading: Integrate the BMP280 to read and display pressure data.
Vario Calculation: Implement the logic for calculating and displaying altitude and climb/sink rate.

Deliverables -

A detailed schematic diagram, gerber, BOM and pick and place files in EasyEDA or another preferred format.
A PCB layout that follows standard design rules.
Ensure that the design includes all necessary passive components for the charging circuitry, such as resistors for setting charging current and any capacitors required for stability.
Provide the Gerber files for PCB fabrication.

Additional Information -

Please ensure that the design considers the physical dimensions of the components and can fit into a compact enclosure while keeping the cost low. If you have suggestions for optimizing the circuit or layout, feel free to include them in your proposal.