Project development

The bending bench

System diagram

Bending Bench System Diagram

  • One single beam, b x h: 140 x 90 mm.
  • General estimate for maximum load capacity.
    2kN/m x 1.5 =3 kN/m
  • Symmetrical cantilevers: yes
  • Board height: 600 mm.
  • Define the shape of the supports.
    Draft design Support definition Final design Pinned and roller suppports

Seats

  • Define the pressure sensors: plattform type 4 x 50 kg per seat Load cell connect
  • Define the shape of the individual seats: WildcardWeek
  • Nine seats will be arranged along the beam.

Load Cells

Problem-solving steps

  • I will use scales of 50 kg each, four units are grouped in a Wheatstone bridge and should work at a maximum of 60/70% of their maximum capacity so the estimated load will be 1'2 kN per seat

  • Collecting the data from each of the load cells. Week 09 Load cell schematic

  • I will use this data to calculate the bending stress on the beam. I’ll determine the values at n points for each section.

  • Once I have the key values, I’ll map them so they can be displayed on the LED matrix.

  • These values will be sent via WIFI to the microprocessor installed in the LED frame to evaluate the bending moment diagram.

LED Matrix

  • Objective: drawing the bending moment diagram.
  • Frame dimensions: 1000x500 mm 17 rows and 32 columns. Number of cells: 544.
    Cell dimension: 30x30 mm
  • The neutral fiber will be drawn in the center row.The number of rows must be odd.
  • The graph must be proportional to the applied forces. Test diagrams In a later development
  • Maximum load alarm.
  • Possibility of significant values information.
  • Calculation of support reactions? In a later development
  • Shear force diagrams.

Bench parametric design

For the parametric design of a wooden bench for bending tests I have used the Grasshopper software in Rhinoceros to design an algorithm that allows the creation of a parametric model of the bench. I will gradually define in more detail the constructive and formal characteristics of the overall design. The advantages of parametric design is that the proposals can be updated dynamically over time.

Initial proposal

I have divided the model into the following parts and for each one I have defined the following parameters:

Design parameters
SeatidComments
S_HeightshDistance from the upper plane seat to the ground. This is the parameter against which everything is recalculated.
S_Widthsw
S_Depthsd
S_ThicknessstThis thickness does not include the connecting elements to the beams which will have to be designed later.
S_SpacessSpace between seats.
Wooden dowelidComments
D_LengthdlLength of dowel
D_radiusdr
Main beamidComments
B_LengthblOverall length of timber beam
B_Widthbw
B_Heightbh
B_SpacingbsBeam spacing
SupportsidComments
L_ToleranceltTolerance on the drill hole for passing the timber round log
L_ThicknesslkThickness of wood panel
L_HeightlhCentre box opening

Final project development week by week

Week 9

I solved the connection issue of multiple load cells using a single CLK signal.
Now, I need to tackle the reading problem for nine groups of four load cells each. Each group will be placed under a seat.
Following Luis’ recommendation, I’ve decided to organize the readings so that I’ll have:

  • One PCB collecting data from the three seats on the left.
  • Another similar PCB collecting data from the three seats on the right.
  • A central PCB with the XIAO ESP32C3 MCU, which will not only gather data from the three middle seats but also consolidate the readings from the other two PCBs.

Week 10

pd week 11 I resolved the issue of storing the load cell scaling data in the MCU (thanks to Preferences) so that it wouldn’t be lost when disconnecting the PCB or closing the Arduino IDE. Thanks to the power consumption tests of the 50-LED module, I now know that each module will consume a maximum of 0.9 A.

This week, I prepared a new PCB with an external 5V input featuring a protection diode. This setup will allow me to power the LEDs with 5V, while the rest of the components will be powered by the MCU at 3.3V. I also defined the geometry of one of the beam supports for my final project. I will begin its fabrication next week. Support definition I was also able to prepare a 1:10 scale 3D-printed model of one of the bench supports this week, although its final design will almost certainly change based on feedback from my students.

Week 11

pd week 11 In addition to the assignments scheduled for this week, I worked on the design and fabrication of the frame that will hold the LEDs. I also made significant progress in the development of the code, both on the server and client sides. On the server side, I prepared it to scale up to reading nine load cells. On the client side, I learned how to remap the LED modules in order to define the lighting criteria, including color and intensity, based on the values evaluated by the server.

Week 13

System Diagram

Bending Bench System Diagram

Week 15 & 16

Under Luis’s guidance, I have moved forward with the design of the PCBs for my final project to use them during the System Integration week. I am also preparing the PCBs that will collect the load cell data.

In the beam structure design, I will place a board under the seats. On this board, I will mill the necessary spaces to house the PCBs corresponding to each load cell, create cable pathways, and allocate space for the box that will contain the central control PCB.

Schema under seats

Central PCB Bench side
CentralPCB Milling central PCB

Individual PCBs for HX711
These PCBs will be placed under the seats according to the numbering shown. It will be necessary to manufacture three units of each of them.
HX_PCB

Weekend Progress

On Friday, May 9, I decided to make a significant change after simulating the bending moment diagram in Rhinoceros using 50 x 50 mm cells. I found that the resulting representation was too pixelated. To resolve this, I reduced the cell size to 30 x 30 mm. Thanks to the Grasshopper strategy I had prepared, the modification was straightforward. I created a new frame with 3 rows and 3 columns to evaluate its appearance.

Frame sizes

At the same time, I designed the covers to be placed on each cell. These covers will be 3D printed. To optimize the printing process, I developed a strategy in Grasshopper, defining the nozzle diameter and layer height as the main geometric control parameters. This approach ensured the perfect execution of the covers. 3D printing cell Lid

On Saturday, May 10, exactly one month before the final presentation, I prepared tests to verify the intensity of the colors I will use to represent the bending moment diagram. I used the PCB prepared during week 6 Electronic design and wrote this code to make the LED colors change cyclically with each button press on the PCB.

Frame colors

On Sunday morning, I made the laser cutting machine work hard. Early in the morning, I exported the paths from Grasshopper and imported them into CorelDraw to manufacture the frame for the LEDs. I used a 5 mm thick MDF board, and after performing a couple of tests, I adjusted the cutting speed to 550 mm/min and the power to 95% for linear movement and 85% for curved paths. The cutting process for the bottom board of the frame took a bit more than 1 hour and 40 minutes.

Bottom board

In the afternoon, I dedicated my time to defining the shape of the seats that I will place on the beam. I had been thinking for a while about using a shape similar to the tall stools I have in my kitchen, which I bought at Zara Home. I scanned one with Scaniverse, exported the points in PLY format, and in Rhinoceros, I cleaned and adjusted the points before generating a mesh that I later discretized and adjusted to obtain a symmetrical and smooth piece. I intended to use this design the week after, yet I modified this design and the fabrication method as we will see later.

Zara Home Seat

On Tuesday 13th, I left the assembly of the frame which will hold all the LED modules almost finished .

Frame mounting

Week 17

Weekly Progress Report

This week has been truly productive; I believe I have made significant progress in my final project. On Thursday, May 15th, I milled the central board that will control the load cells and the PCBs that will be placed under each cell, integrating the HX711 amplifier. Then, I soldered all the components and modified the EdgeCut design of the small PCBs to fit the size of the HX711 board. I think this way the whole set will be better integrated.

Load cell PCBs ready

That same Thursday, I also inserted all the LEDs into the frame I had prepared the previous day. There are 11 modules of 50 LEDs, 17 rows, and 32 columns, making a total of 544 LEDs in the frame, plus six more that I will use to signal the system’s operation in the control box of the frame. Initially, I had started placing the front covers of the squares, but Luis wisely advised me to first install the LED modules to begin the system programming tests.

Non Stop LEDs

After inserting them, I prepared the connections from the power supply so that each 50-unit module receives enough power for its operation. I also shared the same GND between the board and the power supply and connected the data wire to the correct MCU pin. For safety, I performed partial power-ups as I finished the bridges from the power supply to each module.

LEDs hello world

Finally, the LED garden is planted and running.
Green LEDs

The next step was to prepare the supports for the back panel, which I finished printing early Saturday morning.
Back supports

Then, I placed inserts so that the back panel could be screwed onto these supports, facilitating its removal in case of any unforeseen events.
LEDs frame back

New seat design

I dedicated the entire weekend, both Saturday and Sunday, to designing and cutting the new seat model. The process is documented in Week 17. I am very satisfied with the result and now waiting for the arrival of the flexible foam I purchased in order to carry out the final cut of the nine seats.

New foam seat

Final setup decision

During the final week of the Fab Academy, when I was finally able to assemble all the components of the bending bench, I realized that I preferred the overall appearance of the structure with the wooden boards exposed. The foam seats, although functional, visually disrupted the clean and minimal image I wanted for my final project. For this reason, I decided not to fix the foam seats permanently. I will likely repurpose them for another installation or setup in our Fab Lab. Foam seat test

Load cell PCB case

On Monday, May 19th, I dedicated the day to designing, printing, and testing the placement of the box that will house the load cells and the PCB with the HX711 amplifier.
Case load cell render Case Load cell

I simulated the bottom board with foam to speed up its manufacturing, reducing execution time and facilitating any minor adjustments to the initial design. The initial design underwent several changes and adjustments until reaching a final solution that minimized printing times while ensuring the rigidity of the assembly.

For testing, I reused some foam board scraps, and after adjusting their dimensions, I machined them on our large-format Alarsys FRH210 router and preliminarily tested the system’s operation.
Board

In the images below, we can see the cable channels that will lead to the load cell control PCB.
Board
Board

This would be the appearance of the case with the lid in place, leaving the load cells positioned to support the seat. I will likely adjust the placement of the cases by raising them above the board to provide more space between the seat and the panel housing the load cells.

LidLoadcellCase

On Tuesday, May 20th, before installing the back cover of the LED panel, I thought it would be a good idea to place all the missing front covers. I spent a short while fitting them, and since I had adjusted their dimensions correctly, they were installed completely press-fit without the need for adhesives.

Non Stop Caps

And this is the final result with the LEDs turned on.

RedLEDs

Week 18

Week 18 has been somewhat special for several reasons. The first is my stay in Valencia and the award my colleagues gave me in recognition of my professional career in the BIM field. Upon returning to Coruña, everything was going well until Francisco informed me that last Friday the CNC machine had stopped working. On Monday, I contacted Alarsys support and it seems the power supply has failed. The manufacturer will send a replacement, which should arrive in a couple of days.

Hot wire robot tool

In the meantime, I have a lot of work to do. First, I prepared the cutting paths for the foam seats and got everything ready to begin cutting them early on Tuesday morning. I made sure the workspace was properly ventilated, using both natural and forced ventilation.

Robots seat

Robotic arm milling

While waiting for the new power supply, I will use the spindle motor to mill the beam supports. The robot is not as precise as the CNC machine, but it will be sufficient to fabricate thes components. However, I must adjust the feed and spindle speeds. I will use straight two-flute end mills with diameters of 6 mm and 8 mm. The machining parameters I plan to use are listed below, although I will fine-tune them depending on how the milling progresses.

Contour CNC cutting parameters

Ency speed

Important

Due to the configuration of our ABB robot, the spindle rotation speeds entered in Ency Robot are internally multiplied by a factor of 6 in the ABB IRC5 controller. The resulting value after this multiplication corresponds to the actual spindle rotation speed applied to the electrospindle.

RPM ElectroSpindle

Parameters by precision level for 6 mm straight end mills

ToolCategoryRPMFz (mm/tooth)Feed Rate (mm/min)Recommended Depth per Pass
6 mm BitPrecision180000.0414402 mm
Precision180000.0518002 mm
Medium Quality180000.0621603–4 mm
Medium Quality180000.0725203–4 mm
Quick Test200000.0728004–5 mm
Quick Test200000.0832004–5 mm

Robot CNC

After running some speed tests with the robot and the spindle, the milling of the boards is progressing. Once Neil’s class finishes this afternoon, I hope there will be enough time to have all the beam support components ready for assembly.

Wall CNC

Week 19

Beam assembly

On Thursday, I finished fabricating all the components of the bench structure using the robotic arm. Milling boards

With all the parts ready, I proceeded with a test assembly. Press fit

Foam seats At that moment, I was satisfied with the result; however, my opinion later changed regarding the use of the foam seats. The bending bench

The next step was to position the wooden boards that will hold the boxes containing the load cells. Everything fit together properly.
The bending bench cases

On the morning of Saturday, May 30th, I dedicated my time to soldering, wiring, and assembling the boxes that house the PCBs. Special attention was required to correctly connect the load cell wires and properly configure the Wheatstone bridge. Fortunately, I had clearly documented this process back in week 9.
Soldering

HX711 connections

As I assembled each group of three load cells, I verified their operation using a test code—identical to the one used during the Networking and Communications week, with only the data pin changed for each load cell. Mounting HX711 cases
Wiring organization example at load cell number 9. Wiring organization Testing received data Testing loadcell connections Later that Saturday afternoon, from home, I focused on developing the code to control the LED matrix. Luis provided me with a flexible LED matrix of 8 rows by 32 columns, which greatly simplified my work, as I didn’t need to use the custom matrix built for the final project and could carry out all necessary tests with ease.

I organized the code to simulate different values in order to represent various load scenarios. The final matrix has 17 rows by 32 columns, and the test matrix is 8x32, so all tests are easily scalable.

Test 1: Point load on the cantilever tip and another in the middle of the span.
Test 01

Test 2: Uniformly distributed load—equal load on every seat.
Test 02

Test 3: Point loads on the two outermost seats located at the ends of the cantilevers.
Test 03

The diagrams still need some refinement, but they already convey the structural concept I aim to demonstrate with my final project.

On Sunday, I spent the entire morning at the ETSAC Coruña FabLab preparing another group of three load cells. After verifying their operation, I installed the six load cells I had already prepared in their final positions.

Sunday morning works

I also prepared the enclosure that will house the PCB responsible for receiving data from all nine load cells; this box will be mounted at the end of the wooden beam.

Case central PCB On Monday morning, I completed the installation of all the electronics on the beam. I verified the electrical continuity of all connections and had to re-solder the Data channel pin for load cell 3 on the central PCB. Aside from this issue—which I was able to fix easily—everything worked flawlessly.

Beam perspective Beam perspective

On Monday afternoon, the new CNC power supply arrived, special thanks to Alarsis for their prompt service and fast shipping. Replacing the damaged unit was a very straightforward task; within half an hour, the CNC machine was fully operational again.

CNC power supply

With the CNC machine back in operation, I was able to prepare the seat platform, including the necessary recesses to ensure proper contact with the load cells. Although I could have done this with the robotic arm, the CNC provides greater precision, especially thanks to its ability to automatically probe the Z0 on the top surface of the material. With the robot, this process still has to be done manually until I develop a semi-automatic referencing system.

Seat boards

Between Monday night and Tuesday morning, I finalized the design of the control enclosure for the LED matrix. This box will house the power supply, the PCB, and the status LEDs that will later indicate the operational state of the system.

Frame controlbox 01 The control box was attached to the LED frame using cable ties, which remain completely hidden from view. This solution will allow me to easily modify or replace the enclosure in the future, depending on any new requirements that may arise.

However, I did have to apply adhesive to the white PLA printed parts in order to attach them to the wooden perimeter boards of the frame. These printed components include threaded inserts that allow each of the rear panels, into which the back cover has been subdivided, to be fastened with four M3 screws.

Frame controlbox 02 These covers not only conceal and protect the wiring of the LED modules, but also apply slight pressure on the LEDs to prevent unwanted movement. It’s important to note that the entire frame assembly is press-fit, and the LEDs are tightly inserted into dedicated holes designed for each one. Frame controlbox 04

To mount the PCB, I designed a small 3D-printed podium that securely holds the board I fabricated during week 10. In the future, I plan to design a dedicated PCB specifically for the LED frame. For now, thanks to the features of the current PCB, I can power the microcontroller externally, so there is no need for it to remain permanently connected via USB. The USB connection will only be used for programming the Xiao ESP32-C3.

Podium frame PCB

Stress diagrams

With all the frame components already in place, on Wednesday, June 4th I focused on completing the program that would represent the bending moment diagrams based on the values sent by the load cells. For the initial tests, I prepared a series of static values that should be correctly represented on the frame. This allowed me to fine-tune the code so that the diagrams were displayed correctly according to the laws of statics.

Note

It is important to clarify that in Spain it is common practice to draw stress diagrams aligned with the tensioned side of the beam. That is, negative moments are represented above the neutral axis and positive moments below it.
One of the reasons for this convention is that, in the case of reinforced concrete structures, it clearly shows where the reinforcement should be placed along the different segments of the structure.

Initial Stress diagramans

Once I completed the code for interpreting and displaying the bending moment diagrams, the next step was to set up communication between the bench and the LED frame. To do this, I relied on the concepts I had learned during the Networking and Communications week and prepared both the client and server code before uploading them to the MCUs. I encountered a small issue with the reading from load cell three. After disassembling it and checking all the connections, with Luis’s help we identified a faulty solder joint on the DATA channel of the PCB. By applying a small amount of solder, the problem was resolved without major difficulty, and all readings are now correctly detected.

Testing LC values

The next step was to set up the tare conditions for the load cells and the individual scaling of each one. I carried this out using a 10 kg weight. The code is configured so that, by entering the command s1, s2, …, s9 into the serial monitor, the system prompts for the real weight of a known object, calculates the correct scale factor, and stores it in the MCU’s memory using the Preferences library. An automatic tare is performed at system startup, and if a new tare is required later, entering t will tare all nine load cells, while t1, t2, …, t9 will tare them individually.

At this point, I thought it would be interesting to represent not only the bending moment diagram on the frame, but also a simulation of the beam showing the position of the supports and the points of load application that produce the displayed bending moment diagram. I modified the client code, and after several tests, I approved the resulting visualization.

Test position loads

The final task of the day was to prepare small custom-cut wooden cleats, screwed in place to secure the LED frame in its final position. Small wooden parts

With Luis’s help, on Thursday I installed the mounting points for the seat boards onto the load cells. I had planned four attachment points, and I fixed each seat in its final position using 60 mm long screws. Fixing seats There is no issue with tightening the board against the load cells, since a taring process is performed at the beginning of the program, which sets the measurement values to zero and eliminates any preload introduced by this method of seat fixation.

LED Frame Testing

The next step was to place the LED frame in its final position. It was secured using two plastic-coated metal wires wrapped around the columns and fastened to the connectors I had prepared on the frame the previous day.
The frame rests on the table I built during Week 7.

Under Luis’s watchful eye, I worked on solving some fine adjustments in the remapping logic required to represent the bending moment diagram correctly. Since I receive data from nine load cells and need to display it over 30 columns, careful calibration is essential.

In the image below, it can be seen that the negative bending moment is not displayed in the column corresponding to the right support. After investigation, I identified the issue: it was caused by rounding errors in the remapping process for the 30-column display.
Stress diagram

In the physical layout of the frame, the first LED is located in the bottom-right corner, row 0, column 0. The display logic across columns 1 to 30 is organized as follows:

  • Row 0: Symbolic representation of supports
  • Row 1: Beam outline
  • Row 2: Dynamic display of active load positions
  • Row 3: Unused
  • Row 4: Unused
  • Rows 5 to 9: Area for positive bending moments
  • Row 10: Neutral axis
  • Rows 11 to 16: Area for negative bending moments

Once the mapping structure was established, I dedicated several hours to resolving the rounding and remapping issues affecting the accurate placement of maximum bending moments derived from the load cell readings. I introduced a set of code refinements, thanks OpenAI, to ensure that the peak moment always aligns precisely with the correct column for cantilever moments, this should always occur in vertical alignment with the support; for central spans, it should align with the load causing the maximum moment in that segment.

Testing load cases

It was a long and intense day, on Thursday, June 5th, I left the Fablab at 3:00 a.m. on Friday after having arrived at 8:30 a.m. the previous morning. But in the end, I succeeded: the bending moment diagrams now display correctly for any combination of loads.

Frame the bending bench

Visit from the Structural Team

On Friday, June 6th, after a mid-morning coffee around 11:00 a.m., I invited my colleagues from the Structural Engineering Department to come down to the Fablab and verify the correct behavior of The Bending Bench. I hadn’t turned the system back on since the night before, so this felt like a real trial by fire.

Juan Pérez Valcárcel, full professor of Structural Engineering, along with Mariló Otero and Félix Suárez, both associate professors at the University of A Coruña, and above all, colleagues and friends, joined me and actively tested the system.

Final test 01

Uncut Video Test

Final test_02

It was a really fun moment where The Bending Bench performed flawlessly, correctly visualizing all the load cases applied. A total success!
Thank you, friends.

As soon as they left, I think the tension from all these intense days finally caught up with me, my energy dropped to zero. I went home for lunch and ended up spending most of the afternoon asleep on the couch, before deciding to just call it a day and go to bed.

On Saturday, I dedicated the day to updating this section, preparing the summary slide for the final project, and editing the presentation video for next Tuesday.

BOM

BOM

Hardware

Itemsunitsdescriptiontotal €
Load cell94x50 kg Load Cell 50kg Weighing Sensor Half-bridge Strain Gauge Human Body Scale Weight Sensor + mounting bracket + HX7114,59 €41,31 €
LEDs1150 Uds DC 5V WS281111,49 €126,39€
Power Supply1LPV-100-5V 12A 230x70x40 mm32,62 €32,62€
Lever quick connector201x2 32A0,44€8,80€
Bicolor Parallel cable OFC TASKER2 m.2 x 2,5 mm2,42€4,84€
Colored heat shrink tube2BPC0018 1,22 m d4,8 mm1,97 €3,94€
Frame MDF 5 mm11210 x 101027,52€27,52€
21000 x 80022,11€44,22€
Support21000 x 80025,7851,56€
Beam14000 x 140 x 9063,00€63,00€
Board under seats9400 x 300 x 126,5€58,50€
Foam blocks for seats5450 x 450 x 370 26kg/m329,16€145,80€

Electronics

PCB load cellQuantityUnit Prize
PinHeader_01x04_P2.54mm_Horizontal_SMD Data Sheet90,59€
PinHeader_02x03_P2.54mm_Vertical_SMD Data Sheet90,55€
Ribbon cable Data Sheet10 m10,30€
PCB control load cellQuantityUnit Prize
R_1206 0 Ohm RC1206FR-070RL Data Sheet10,09€
XIAO-ESP32C3 Data Sheet14,39 €
PinHeader_02x03_P2.54mm_Vertical_SMD Data Sheet30,55€
PCB control LEDsQuantityUnit Prize
XIAO-ESP32C3 Data Sheet14,39€
SCHOTTKY 100V 1A Data Sheet10,18€
PinHeader_01x03_P2.54mm_H_SMD Data Sheet13,04 €
Input GND SM99S01VBNN05G7 Data Sheet10,88€
Input 5V SM99S01VBNN05G7 Data Sheet10,88€

Schedule for remaining task

MonthDayDaysTopicFinal Project
April21Mechanical design, machine designMeet with local and global instructors
232Molding and castingDesigning and milling Final projects PCBs
307Interface and application programmingMilling and mounting the beam supports
May77System integrationCutting and mounting the LED panel
147Wildcard WeekFinalise design of seats. Construction and installation of the nine seats. Soldering PCBs
217Applications and implications, project developmentPlacement of load cells. Developing the code for the reading of the load cells and the representation of the bending moment diagram
287Invention, intellectual property and incomeTesting and trials. Test publication of a presentation design and final video production
Jun47Weekly assignments deadlineCompleted the code for load cell reading, server and client design, and the bending moment calculation program with remapped representation on the 17-row by 32-column frame. Updating project development. publication of final slide and video for the project presentationwip
5nueval AcademanyLocal and Global evaluationnueval evaluation95%
10Final project presentationsSlot: 09:14’ Jun 10th

Schedule updated 06.07.2025

Countdown to Final Project presentation

Files

LED frame color cycler. Arduino IDE .zip
Lid for LED frame. Grasshopper
Lid for LED frame. STL

PCB Loadcell control. KiCAD. zip
PCB HX711. KiCAD. zip

Bending Bench CAD definition. 3dm. zip
HX711 Load cells case. stl. zip
HX711 Load cells lib. stl.zip
Central PCB case. stl. zip
Central PCB Lid. stl. zip

WIP

Last updated on