System Integration

  • Design and document the system integration for your final project

System Integration Overview

For sketching this overview, I used Paint.
overview

Electronics Components Datasheets

Overall Power Consumption for the Electronics

Values taken from component datasheets where available. In order to be able to calculate consistently the power consumption, considering that different components require different voltage input values, power was calculated using the peak current values:
P = V×I (W)
. Nevertheless, practical test to find out the true power draw values with a benchpower supply was done!
Component Supply Voltage (V) Peak I (A) Peak P (W)
Raspberry Pi Pico W 5.0 0.0955 (without saving mode) 0.478
NDS355AN MOSFET (gate drive) 3.3 0.0017 (pulsed) 0.0056
Linear Regulator L78-05 (D²PAK) 5.0 0.0800 0.400
DS18B20 Sensors (×2) 5 0.0015 (drain/sink) 0.00495
SBC-OLED01.3 Display 3.3 0.0207 (100% contrast and brightness, check link) 0.0683
DC Fan 12 0.0290 0.36
Total Peak Current 0.0955 A + 0.0017 A + 0.0800 A + 0.0015 A + 0.0207 A + 0.0290 A = ≈ 0.2284 A
Total Peak Power (5.0 V × 0.0955 A) + (3.3 V × 0.0017 A) + (5.0 V × 0.0800 A) + (5 V × 0.0015 A) × 2 + (3.3 V × 0.0207 A) + (12.0 V × 0.0290 A) = 0.478 W + 0.0056 W + 0.400 W + 0.204 W + 0.0683 W + 0.348 W ≈ 1.314 W
Theoretically speaking, for a powerbank that has storage of 24 000 m A h and 88.8 W h:
Run Time = 88.8 W h ÷ 1.324 w ≈ 67.069 h

Practical Total Power Consumption Value

First test, I tried with a different fan that consumes way more current than the one I am planning to use, because my actual fan still hasn't arrive. However, this deviation can be considered as a safety limit value. I used the powerbench to set the voltage to 12 v, then checked the power consumption → ≈ 88 h
powerconswithfan
Afterwards, I unplugged the fan and checked the difference of the consumption; it went down to ≈ 0.05 W. Simple math: considering the actual power consumption of the fan I want to use (29 mA, 0.348 W), My prediction would be; total power consumtion is ≈ 1.2 W. 0.9 - 1 W. This means, my circuit will run for 88 h without needing to recharge the powerbank! Nevertheless, I will repeat the test once the fan arrives to confirm my assumption
powerconsumptiontest

Designing Housing for the Electronics

First, I decided to use the caliper to take the measurements for each component to be able to design around them.
Measuringelectronicscaliper
In the following table, you can find all three dimensions for each component (width, length, thickness):
Component Length Width Thickness
PCB 91 mm 62 mm 5 mm
DS18B20 Temperature Sensors 28 mm 26 mm 9 mm
SBC - OLED01.3 Display 36 mm 34 mm 4 mm
USB- C PD Module 30 mm 15 mm 4 mm
Power Bank 160 mm 79 mm 30 mm
Then, as a second step, I went to Thingiverse to explore whether I have any housing for my components that I can build and modify upon. I found one for the OLED display. Hence, I downloaded the stl file and used the convert mesh tool to convert the mesh body into a solid body, after reducing the triangles density using reduce in modify menu in order to be able to modify on it easier.
reducemesh
convertmesh

Designing OLED Display Housing

Next, using the measured dimensions of my oled display, I scaled it down to the right dimensions to the display opening. As to fixate it, I extruded 4 pins to fit into the holes of the display. As for mounting it, I decided to use a clamp-like mechanism to have it modular where I can move it from one side to the other. First, I used offsetplane tool to have the sketch surface for two clamps at the bottom side of the display housing. Then, using a combination of line and spline tools, I managed to achied the right sketch, bearing in mind the thickness of my plywood (12 mm + 15 mm). Afterwards, I usedsweep to convert the sketch lines to the clamps solid body (~2.5 mm thick) and joined them to the display housing. To relieve the stress created between the PLA and the wood pulling in opposite directions, I added few fillets on each stress point on the clamps (3 mm and 5 mm fillets). Lastly, for aesthetic purposes, I added a 2 mm fillet on the edges of the housing.
offsetplanedisplay
sweepclampsdisplay

Designing the PCB Sliding Box

Using the the measured dimensions of my PCB, I drew a center rectangle and extruded it to 41 mm in order to fit the PCB as well as the pinheaders protruding from it. Next, using the shell feature, I turned it to an exposed box. In order to slide the PCB insto the box, I sketched the channel on each inner face of the box and cut ~1.5 mm deep to manage to hold the PCB. For easier insertion, I added 0.4 mm chamfer on each edge of the channel. Moreover, to prevent the tangling of the cables coming out of it, I sketched and extruded a circle, with an upper small cutout/ opening to be able to insert the cables into it. To be able to mount the box, I added two ear like extenstions on each side, where a cut outcircle for screws and added 3 mm chamfers to compensate for the countersink of the screws. To size down the hole, I designed a washer with the same thickness of the ear and projects the mating part of the chamfer-hole cut out of the ears. Now a screw of 4 mm diameter should fit! Moreover, for each stress point as previously explained, I added 4 mm fillets between those ears and the box itself. This also helps reduce the amount of support needed when printed! Lastly, I added few 5 mm fillets around the box to enhance the visual appearance.
shellPCBbox
chamfercountersinkPCB

Designing the DS18B20 Temperature Sensor Housing

Using the the measured dimensions of DS18B20 Sensor, I drew a center rectangle and extruded it to 13 mm in order to fit the the sensor surface area. Similarly to previously explained (extrude box + shell), I created a channel with chamfer to slide the sensor shield into. However, I decided to have it completely opened from the bottom so I cut out completely the face. Since I need the sensor to be exposed and mounted upwards to sense the heat coming from my PC for my final project, I cut out a 10 mm circle. Additionally, to consider the clearance of the pinheaders on the side of the shield, I cut out ~ 1 mm into the wall of the box. To be able to mount the box, I added four ear like extenstions on each side, where a cut outcircles for screws and added chamfers to compensate for the countersink of the screws. Moreover, for each stress point as previously explained, I added 2 mm fillets between those ears and the box itself. Lastly for aesthetic purposes, I added 3 mm fillet around the upper edges of the box.
tempsensormountears
chamfercountersinktempsensor

Designing the USB-C PD Module Housing

Using the measured dimensions of my PD module, I drew a center rectangle and extruded it to 10 mm in order to fit the USB slot and the reset button on its surface. Similarly to previously explained (extrude box + shell), I created a channel with chamfer to slide the module into. In order to be able to plug the usb, I cut out a rectangle 3 mm * 8 mm from the back side of the box. Furthermore, I created a lid to fit the other side of the box, with a cutout rectangle 10 mm * 2.5 mm for the cables to pass through. To be able to mount the box, I added four ear like extenstions on each side, where a cut outcircles for screws and added chamfers to compensate for the countersink of the screws. Moreover, for each stress point as previously explained, I added 2 mm fillets between those ears and the box itself. Lastly for aesthetic purposes, I added 3 mm fillet around the upper edges of the box.
PDModulemountsketch
chamfercountersinkPDmodule

Cable and Connector soldering to USB PD Module

To integrate the PD module to the system, I had to solder some connector (negative and positive), to be able to connect it to the power bank. Hence, I used two TX 60 connectors, which have maximum current input of 60 A. It is not requred to go that high, but that was the only available ones in the lab. As fot the cables, I looked up the American Gauge Wire table, and I found the 0.8 mm diameter ones that I will use, which have perfectly maximum current load of 1.5 mA (also safety limit). In order to insulate the cables well, I used Heat shrink, which are "closed tape like" material that would shrink when heated with the hot air gun. This in turn helps release the stress from the soldering points into the the shrunk heat!
USBPDconnectors
PDpresoldering
Now to set the voltage mode distributed by the PD module, I referred to the datasheet, I followed step by step in order to make my default mode: 12V.
Then, I tested my whole circuit integrated with both the PD module and the powerbank; everything worked as intended!

Designing the Power Bank Housing

Using the measured dimensions of my PD module, I drew a center rectangle and extruded it to 39 mm the power bank. Using shell tool I created an open box. In order to have the the USB slots accessible, I decided to measure each USB slot and cutout each one of the and have that face closing like a lid (New body). To fixate the lid, I extruded into the wall a 1 mm deep rectangle and I added a chamfer for easier insertion. I created a mating part on the lid itself. To be able to mount the box, I added two ear like extenstions on each side, where a cut outcircles for screws and added 5 mm chamfers to compensate for the countersink of the screws. To size down the hole, I designed a washer with the same thickness of the ear and projects the mating part of the chamfer-hole cut out of the ears. Now a screw of 4 mm diameter should fit! Lastly for aesthetic purposes, I added 5 mm fillet around the edges of the box.
extrudeearspowerbank
chamfercountersinkpowerbank

Final Designs of All Electronics Housings

PCBslidebox
Housing for the PCB
OLEDDisplayHousing
Housing for the OLED03.1 Display
DS18B20housing
Housing for the DS18B20 Tempertaure Sensor
UPDModulHousingupdated
Housing for the USB-C PD Module
powerbankholder
Holder for the Powerbank

3D printing Housings for Electronics

I sliced the housings .stl files on the Bambustudio. I set the support type to tree (auto), and the brim type to outer brim only. I left the default settings to those of the Bambu Lab A1 0.4 nozzle. Nevertheless, this time I tried something different; I sent the sliced g-code over WLAN by scanning and for available devices, selecting the right device and adding the access code to connect to the printer. Before clicking sending, it is always good to double check that the printer's bed is empty and no calibration strips from the filament are left. Once confirmed, I sent the job. The whole first test print took ~50 min.
Bambuconnectingcode
sendprintingbambu
One more cool thing is that I was able to watch the print right from my laptop's screen, which is very convenient while needing to use the time to document B)!
The second test after confirming that the hook fit perfectly into the 12mm plywood thickness.The channels I created for sliding each component also worked perfectly. The only thing that I modified was the cutout circle for the temperature sensor doubled it in area. Lastly, I just adapted the width of the hook so it fits both the table surface and the rail base (12 mm + 15 mm). Once I have the updated table version ready designed and cut, I can easily adapt that dimension fo the hook to fit accordingly.
DisplayClampTesting
I used the same Bambu A1 printed to print all four housings: USB C PD module, PCB, OLED03.1 display, and DS18B20 temperature sensor. The printing this time took ~4 h 18 min.
SlicingHousing

Assembly for Each Electronic Component + its Housing

housingPCB
Housing + PCB
housingdisplay
Housing + OLED03.1 Display
housingtempsensor
Housing + DS18B20 Tempertaure Sensor
housingPDmodule
Housing + USB-C PD Module
housingpowerbank
Holder + Powerbank

Mechanical Components

For my laptable, I used the one I already cut in Week 7 - Computer controlled machining. This was my intention for this week: to complete the first spiral and push it as far as possible, and if I still have time I can cut my updated table design again and integrate all the other components accordingly.
tabelprototypeangle
tableprototypeshot

Determining PWM range for my Actual Fan

Finally, my fan arrived, so I wrote a simple code to determine the minimum and the maximum PWM range to map the speed fan accordingly (voltage input)


                                        /*
This code is to find out the PWM mapping range (min, max) for my fan
*/

const int FAN_PIN    = 16;    // PWM pin to fan MOSFET/gate

void setup() {
  Serial.begin(9600);
  pinMode(FAN_PIN, OUTPUT);
}
void loop() {
  for (int p = 0; p <= 255; p++) {
    analogWrite(FAN_PIN, p);
    Serial.print("PWM = "); Serial.println(p);
    delay(500);         // give the fan time to respond
  }
  while(1);            // stop after one loop
}

As you can see in the video, the fan starts to rotate with the PWM value hits 170. Hence, I changed it accordingly in my final project (draft) code - week 11!

System Integrating Test

In order to proceed with mounting everything on my table, especially my temperature sensors, I went ahead and did another benchmark test like how I did in Week 9 - Input Devices. I placed a tape in the middle of the table, roughly where my CPU heats the maximum, then I placed my temperature sensors inside and put my laptop on top of the tape. Afterwards, I observed the values of the mean temperature and the fan speed rising slowly until it hit 100%.
initialtestsystem
This confirms for me where I can drill two rectangle cut outs into my table surface to play my DS18B20 sensors flushed. The rest of the system (the PCB, PD module, and the power bank) will be placed at the bottom left corner on the left side of the plate. The OLED display will be mounted using the clamp also on the left side (since I am right-handed). In order to pass the air flow from the fan to the laptop, I also cut out "pattern" in the middle section of the table. As for mouting the fan, since it should be blowing in the same direction as the fan of the laptop is blowing in, I placed it under the surface with a ~ 45° angle .

Mounting Components, Laser Cutting, and Cable Management

In order to have hide nicely the cutouts for the sensors, I found this tree pattern to engrave in the middle section of my table. First, I downloaded the .png file and I used Picsvg converter to convert it to an .svg file. Then, I went to inkscape to apply trace bitmap in order to see the contrast (black and white) where the pattern will be engraved on the table.
Tracebitmaptree
exportpdftreepattern
Once I scaled it to A4 paper, I exported it as a pdf and printed it on an A4 paper. Then, I placed it physically on the table and measured exactly the dimensions where I want it to be. The dimensions where ~ 265 mm × 170 mm. Then, I measured where the laser head has to exactly jog it there manually and start the engraving job.
measuringtreepattern
Afterwards, I went to Rhino 7 to manipulate the pdf file and exactly fit it to the dimensions I previously measured.
scalingtreepatternrhino7
Now, with the shortcut ctrl + p, I went to the Epilog Dashboard software, and I set the engraving parameters and I set the power to 60% and speed to 95%.
Lasercutparameterstreepattern
Lastly, I sent the engraving job to our Fpilog Laser Fusion 60 Watts CO2 Laser, after I made sure that the laser head is exactly at the upper left corner point of the pattern to be engraved. The whole process took 17 min to finish.

Mounting Fan and Sensors

First, I positioned the fans and the sensors where I measured the laptop gets the most heated. Additionally, for the fan I positioned it under the sensors location alittle bit to the left, so it is around the same positions where my laptops fan is to help aid the original internal cooling mechanism.
positioningsensorsfan
fanpositioning
Then, with the help of my instructor, we drilled two holes with 4 mm bit for the sensors heads, in a way that is disguised within the petal engraving. Similary with the fan, I tried to disguise it with another petal engraving and drilled 5 holes with4 mm bit, 2 holes with 5 mm bit, and one hole with 8 mm bit. In order to fix the blowout on the opposite side of the drilling, we went with the countersinking bit (45° chamfer) for each drilled hole!
airflowholes
drillingsensorsmountingholes
Now, I have both sensors and fan mounted and fixated on the bottom side of my table's surface. The only thing to test is whether more cut outs are needed for a better airflow, and whether blowing out to help the laptops fan dissipate the heat to the outside or blowing into the laptop itself has a better cooling effect!.
fanssensorsmounted
After testing, we confirmed that the airflow going in the same direction of the internal fan is decently impactful and aids in cooling. Therefore, we decided to commit to it and fixate the screws all the way in.
Nevertheless, to have less of a distance between the fan and the table top surface, we decided to laser cut a pocket with the same dimensions as the fan (60 mm × 60 mm × 15 mm).
However, for the sensors, we decided to add some conductive material like brass or copper in the holes to help transfer the heat faster. Moreover, I broght down the minimum thresholf in the code for the fan to turn on to 22°C, so the speed of the fan reaches to 100% faster!

Conclusion and Reflection

This week was a very productive week! I 3D designed and printed housing for each components, engraved tree pattern on my table surface using the laser cutter, calculated the overall power consumption and determined the run time of my electronics circuit using my power supply (power bank), tested my fan and mapped the PWM range accordingly (starting at PWM = 170), performed a live system test to identify the laptop’s hottest zones and the optimal airflow direction. and lastly mounted three components of my electronics, a.k.a the fan and the two sensors. What remains is cable management and the final mounting of my OLED display, PD module, PCB board, and power bank into their housings, potentionally adding conductive brass inserts for faster thermal transfer at the sensor drilled channels, continue redesigning my table for another spiral, and hopefully test the quality of the whole system in terms of ergonomics, usability and funtionality. Once weaknesses are determined, I will continue on iterating to achieve a final product to my satisfaction, even if that means continue on the development spirals after FabAcademy is over!

Files