Skip to content

Noise Drum (final project)

For now, let’s assume my final project will be about making a noise drum. As already mentioned, the main goal was to learn about systems that are part of electric vehicles. The first draft can be found on the introduction page of my Projects section.

In preparation for the final design I started using the weekly assignments to do some experiments and research for the sub-systems I need. One of the main ones is the motor driver. I wanted to learn how a Variable Frequency Driver (VFD) works by designing one for my drum drive. In the end I didn’t manage to get it working and used a simple DC-motor driver. But I have done a lot of research and documented that on the input and output devices page.

Components, Requirements and Calculations

Based on the first sketches I made this PBS (product breakdown structure).

  1. Drum
    1. Drum Axle
    2. Drum - made from 60 l oil drum
    3. Noise Rings - on the outside of the drum
    4. Horn - from composites or from steel plate welded on the open end of the drum
  2. Drum Drive
    1. Motor Driver - power board with mosfets and gate drivers
    2. AC Motor - probably a large BLDC motor
    3. Coupling - 3D printed flexible coupling from motor shaft to drum axle
  3. Noise Drives
    1. Noise Chains - to produce different sounds
    2. Metal Chain
    3. Plastic Chain
    4. Brush “Chain”
    5. … something else
    6. Links - construction to drive the chains towards the drum and back
    7. Servos - to drive the links
  4. Control
    1. Motor Controller - 6 outputs: PWM
    2. Speed Control Handle - 1 input: 1~3 V
    3. Noise Controller - 4 outputs: PWM
    4. Noise Selector - 4 inputs: TBD
    5. Central Control Unit - probably all above combined in one board with SAMD21 or SAMD51
  5. Battery
    1. Batteries - depending on the voltage level needed for the drum motor
    2. BMS - optional: battery management system
  6. Frame
    1. Basic Frame
    2. Secondary Frame
    3. Control Unit Plate
    4. Drum & Motor Support
    5. Chain Frame
    6. Handle Bar
    7. Seat

I will try to use as much left over materials as possible. I have alot of junk in my workshop. I probably don’t have to buy any material for the construction of the frame and I have enough bearings and bolts and nuts too.

Requirement Notes

Some general design considerations:

  • drum torque:
    • drum radius ≈ 200 mm
    • chain force ≈ 10 N
    • torque ≈ 2 Nm
    • with 5 noise chains torque ≈ 10 Nm
  • motor torque:
    • reduction gear: 1 / 50
    • torque: 0,2 Nm
  • power estimation:
    • max drum speed: 2 Hz (120 rpm)
    • angular speed ω ≈ 12,6 rad/s
    • P ≈ 126 W, calculate with Pmax = 150 W

Some basic requirements for the microcontroller:

  • PWM pins motor - 6
  • ADC input pins throttle handle - 2
  • analogue inputs sound control - 4 (or less, depending on final choices of chains)
  • analog outputs sound control - 4 (or less, depending on final choices of chains)
  • I2C output to LCD or OLED - 1 (2 pins)

Block Diagram

For better understanding I drew a block diagram that shows how the main functions work together.

Final BOM

In the end I had to change my plan because I didn’t get the 3 phase driver running. The last week I quickly turned one of the older versions into a single mosfet driver board suitable for a DC motor. The final list of ccomponents and the part structure is captured below:

  1. Drum
    1. Drum - made from 60 l oil drum
    2. Axle
    3. Inner disk
    4. Outer disk
    5. Spacer disk
    6. Pulley 64 T
    7. Retainer
    8. Spacer shims
    9. Bearing adaptor ring 22 x 25 x 11 mm - 4 pcs
    10. Bearing retainer tube
    11. Mounting tube
    12. Bolt M8 x 12 with ring
    13. Bolt M8 x 70 with rings and nuts - 3 pcs
  2. Drum Drive
    1. Motor driver board
    2. Gate driver IR2112
    3. Mosfet IRF540N
    4. Capacitor 1 µF
    5. Capacitor 300 nF
    6. Resistor 5 Ω
    7. Connector 2 x 2 vertical
    8. Connector 1 x 2 horizontal - 2 pcs
    9. Motor assembly
    10. DC Motor MTI Torque Systems 2105
    11. Pulley 12 T
    12. Motor base plate
    13. Motor back plate
    14. Motor clamping plate
    15. Screw M6 x 70 with washer and wing nut - 2 pcs
    16. Drive belt - SKF TB01120 - 130T x 20 mm
  3. Noise Drives
    1. Grinding Chain
    2. Rectangular tube 25 x 25 mm - 100 mm
    3. Sanding tape - 400 mm
    4. Duct tape
    5. Metal Chain
    6. Rectangular tube 25 x 25 mm - 100 mm
    7. Anchor chain - 400 mm
    8. Wood Chain
    9. Rectangular tube 25 x 25 mm - 100 mm
    10. Plywood 12 mm - 200 x 25 mm
    11. Piece of rope
  4. Control
    1. Motor controller
    2. Throttle handle
    3. Hall sensor 1: 0.89 ~ 3.84 V (not used)
    4. Hall sensor 2: 0.44 ~ 1.91 V
    5. Power supply wire 2 leads
    6. Connector band wire 4 leads
  5. Frame Assembly
    1. Frame
    2. Legs pipe 1” - 4 pcs
    3. Connection beams 3/4” and 1”
    4. Chain gliders 20 x 20 mm - 3 pcs
    5. U channel steel 70 x 40 mm - 700 mm
    6. Nut high M8 - 2 pcs
    7. Bearing housing with rim
    8. Bearing housing with axial degree of freedom
    9. Bearing 6205ZZ - 2 pcs
    10. Screws M6 x 25 with washer and nut - 4 pcs
    11. Screws M6 x 30 with washer and nut - 4 pcs
    12. Handle Bar
    13. Handle bar mounting blocks - 2 pcs
    14. Socket head screw M8 x 40 - 4 pcs

Calculations

For determining dimensions and estimate power consumption and heat dissipation I made some calculations in excel. The first sheet is related to mostly mechanical calculations and the second sheet deals with electronics. All yellow fields are fixed inputs from datasheets or fixed values components that I used. All green fields are estimated or design decisions from my side. The blue fields are resulting calculations from the other fields as input.

Assignment Week 17

The final project proposal should answer the following questions:

  • What will it do?
    • It will make noise by a clatter of chains against a speed controlled revolving oil drum
  • Who’s done what beforehand?
    • Nothing identical as far as I know, but the inspiration comes from mechanical art projects like Jean Tingelay
  • What will you design?
    • AC-motor controller board
    • servo control board(s)
    • central control unit
    • drum construction and bearing
    • steel support construction incl. seat and handle bar
  • What materials and components will be used?
    • a metal oil drum
    • 2 left over bearings type 6205ZZ
    • steel construction parts from leftovers
    • a left over motorbike handle bar
    • a BMW ride by wire throttle control handle
    • a dedicated motor driver with 3 gate drivers and 6 mosfets
    • a brushless DC motor used as 3 phase AC motor
    • one or more servo motors
    • steel and plastic chains
    • a steel brush
    • a control unit based on the SAMD family
    • optional: I2C display
  • Where will they come from?
    • a lot from left overs in my own workshop
    • electronics from Waag or local vendor Conrad
    • BLDC motor from de Waag
  • How much will they cost?
    • practically no cost involved except some components like mosfets and gate drivers
  • What parts and systems will be made?
    • see above
  • What processes will be used?
    • welding
    • 3D printing
    • PCB milling
    • shopbot 2,5D milling
    • Arduino IDE programming
  • What questions need to be answered?
    • main question still is to get the 3 half bridges working
  • How will it be evaluated?
    • my central focus of fabacademy is to understand AC motor control, so if I’m not able to eventually construct a speed controlled device that reacts on the input of the throttle handle, I fail in my opinion.

Drum

For the dum I bought a second hand oil barrel of 60 l. I removed one of the lids to make it open on one side. In order to create bumps, I hammered the circomference of the drum from the inside. This made dents that poke out on the outside wich will cause the chains to rattle.

For the shaft I used an old rear axle drive shaft from a van. The sheet metal is very thin, so in order to make it more rigid I made two disks that are mounted on both sides of one of the lids of the barrel. With the shopbot I cut them from 18 mm plywood which ensures that the hole for the shaft is exactly in the middle. I had to enlarge the hole of the inside one, because the shaft isn’t exactly 22 mm up to the base. To mount the shaft exactly perpendicular I used shims under the connecting three lips.

Drum Pulley

The pulley I used was based on an old SKF drive belt from a car cooling system I found which is 20 mm wide. Because the only plywood availbale was 18 mm thick I used a spacer of 3 mm on the inside towards the drum and a retainer disk on the outside. The amount of force is limited, so a pulley of 18 mm is strong enough.

For easy construction I wanted to place the motor outside the drum. With a calculated ratio that should be around 5 or higher (see above) this limits the choices of pulley teeth number. The drive belt had a pitch of 8 mm, so I just made a hunch that the pulley generator in OpenSCAD from thingiverse would produce something useful.

I used the HTD 8 mm type and that worked, but to make the big drum pulley on the shopbot I had to use a work around. Within OpenSCAD I wasn’t able to find a quick way to export a 2D vector file to import in Vcarve. After consulting others at de Waag I eventually decided to just import it into Fusion and make a sketch based on the generated pulley. I turned that into a model aand used the manufacturing environment to generate the Gcode. BTW: I prefer Fusion to Vcarve for that anyway; it has far more different toolpath strategies.

OpenSCAD Fusion Sketch
Fusion model Fusion toolpath

Drum Drive

In the junk in my workshop I also had an old DC motor that might work for this application. I did some research on internet and found that it was made by Montevideo Technology Inc. They still make this type and the datasheet from the current version is probably not far off. The type I had was a small 2105 with a tachometer on the back end. It was still working and the brushes were still in good condition.

Motor Pulley

The pulley for the motor was small enough to print from an STL exported from the OpenSCAD pulley generator. Here I used a pulley base to screw it to the shaft of the motor, but 3 mm seemed a bit small, so I changed that to M4. Therefore I had to adjust the nut slot to the key width of 7 mm and nut thickness of 3.7 mm, of course with a bit extra for some play.

For generating Gcode I used PrusaSlicer with mostly the standard settings for PrusaPETG. In a previous project I experienced that the strength is sometimes not enough, so I used a different setting for the infill: a pattern of 3D honeycomb with a density of 25%.

pulley in OpenSCAD pulley in PrusaSlicer

Motor Driver

The motor driver was a hacked version of the second version of my motor driver research (see the paragraph about that in the input&output section).

I removed the high side mosfet and the linked components and made sure on the gate driver the high input and the SD input of the gate driver were connected to ground. I decided to feed the logic of the gate driver with 5 V from the controller board. The schematics is in the picture below.

I re-used the original board, so to match the new set-up I had to make several patches.

original board
patched version

As you will see in the presentation video, I tested it first with a small solenoid to make sure the principle worked. The signal was very noise, but I had no time nor the components to add the right capacitors to reduce this.

Frame Assembly

The frame was constructed from old material I had in my workshop Most of it is gas transport pipes and some parts are square tube 20 x 20 mm or 25 x 25 mm. For the mounting of the bearing housings I found a left over U-channel beam of 70 x 40 x 3 mm. The part I used near the drum was cut down to 70 x 25 x 3 mm because it needed some clearance from the drum mounting screws. The construction was not really carefully designed, but constructed based on some rudimentary sketches that actually look more like doodles and decisions on the go.

some doodles

The bearings are two old 6205ZZ bearings (both side sealed) that are 25 mm on the inside and 52 on the outside. To fix them around the shaft I 3D printed 4 bushings. They are mounted to steel U profiles of 70 x 40 x 3 mm. The bearing housings are also a 3D print. One of them is closed, so one bearing has a fixed position and the other one is open to allow some play in the axis direction.

Noise Drives

To finish the noise drives was not possible anymore. Originally I wanted to use three servos with links to the chains so I could switch them on and off from the handle bar and control the amount of engagement. For now I just made the sliders from the square tubes and welded a chain to one of them and attached some wood and a strip from a sanding roll to the others.

Control

The control was quite simple. As mentioned before, I re-used my motor control board based on thye SAMD11C from the input & output devices week. I already knew the hall sensors from the throttle handle were working fine and that I could read the signal.

Only thing I had to add is to map the signal to the output PWM for the DC motor. I mapped it quite narrowly, because the motor only started running at a fair amount of current. To make sure the motor would stop when the handle was closed, I added a condition where the PWM output would be zero. The lines of code are just a few, as you can see below. The print commands were just for the initial check if the reading and the mapping of the sensor were correct.

// program for controlling DC motor single direction
// input comes from a throttle handle hall sensor

// definitions of output pins
// _dn is gate driver LIN
#define A_dn 5

// hall sesnro pin
#define hall_pin 2

int hall_val = 0;
int hall_map = 0;

void setup() {
// pinmode output to gate driver
pinMode(A_dn, OUTPUT);

// pinmode input from throttle handle
pinMode(hall_pin, INPUT);
Serial.begin(115200);
}

// testrun output
void loop() {
hall_val = analogRead(hall_pin);
Serial.println(hall_val);
hall_val = map(hall_val, 150, 1023, 150, 255);
Serial.println(hall_val);
hall_val = constrain(hall_val, 150, 255);
if (hall_val < 200) {
    analogWrite(A_dn, 0);
}
else {
    analogWrite(A_dn, hall_val);
}
delay(200);
}

Final Result

video final presentation

slide final presentation

Design Files

Below you can find the links for downloading various design files:

Bearing Housing and Bushing in Fusion

Bearing Housing 1 in STL

Bearing Housing 2 in STL

Bearing Bushing in STL

Motor Pulley 12T

Motor Pulley in STL

Drum Pulley 64T

Drum Pulley in STL

Retainer Disk for Drum Pulley

DC Motor Drive Schematics


Last update: March 23, 2023
Back to top