Monday, March 2, 2020

D03: the "LESA Boogie" guitar amplifier


I've built this guitar amplifier from a 50's turntable with speakers.
This turntable was built by LESA (Laboratori Elettrotecnici Società Anonima), which sounds like Electrotechnical Laboratories of an Anonymous Company.


It happens that this turntable was left in an house with water leaks, the water was running just over the turntable, luckly speakers was intacts.
Because i like the turntable front and the speakers case, i decide to build a small guitar amplifier our of that piece.


As a side note to this project, the main PCB of this turntable contains some germanium transistor that I've use to build this Germanium Fuzz guitar pedal: http://davidegironi.blogspot.com/2019/02/bad-ragaz-fuzz-germanium-fuzz-pedal.html
Stage one was the building of the case.


I've glued and screwed two speakers, a hole between the two speakers was drilled for the cables.
Then on top of the speaker I drill some holes for potentiometers and panel devices.
On the back panel I put the power plug with fuse and power button.
Once I was sure that the case was correctly built it was time for the interesting stage, the electronic.
I've a +-13V 80VA transformer that I salvage from an old HiFi system, so I can build something with dual rail supply.


The design reference I use are the schematics of the following amplifiers:
  • Marshall MG10
  • Fender Frontmain 10g
  • Vox Pathfinder 10
The power stage is pretty simple, just a bridge rectifier, capacitors, two resistors used for voltage reduction, and two zener diode for the +V and -V of the opamps.
The preamplifier uses a TL072 opamp, the input stage rectify the guitar high impedance and gain the signal of 8.9.


The second stage is the overdrive channel, which is also TL072 based. This channel is enabled by the bypass selector, that is simply a DPDT switch.
The gain of the overdriver in my construction is fixed, cause I do not want to drill an hole for a gain potentiometer, instead I want to use one button of the original amplifier.
So in my design I can switch between a crunch/soft gain overdrive to an overdrive/high gain.
It would be easy to mod this amp adding the gain potentiometer for a more accurate setting.
You could simply add a 1M pot instead of the gain fixed resistors.


The tone stack it's based on the Fender 6G5 circuit with some little mods.
The signal then goes to a PT2399 based reverb. It's rectified by the TL072 that fits the signal for the amplifier board.


The reverb board has two trimmers, one for the feedback signal, the other for the delay time. Adjusting the trim the reverb sounds change. The two trimmer are in parallel with two resistors, a switch on the amplifier select which resistor is enabled, this way I can select between two different reverb styles.


The amplifier is based on the TDA2030A IC. It's basically the datasheet sample with some fleavours and signal filtering additions.


Speakers are obviously old. They comes with a woofer and a tweeter, joined togeter using a single capacitor filter. The original speaker impedance was 3.2ohm. In order to connect the amplifier board to the speaker I've wire the two speaker using a single filtering capacitor.


The amplifier sounds and looks pretty good to my hear and eyes.
Furthermore it's a LESA and I have an apartment in Lesa (https://it.wikipedia.org/wiki/Lesa), a town on the Major Lake. Guess where this amplifier is built for?





Notes
  • read risk disclaimer
  • excuse my bad english

Monday, February 3, 2020

AVR Brushless motor driver PWM scheme samples


A three-phase brushless motor it is usually drive by six-state commutation step sequence.
The commutation sequence drive the motor coils in order to make it spin.
The picture above represent a standard commutation scheme, each line is the motor coil status.


Given a 360 degree commution space, each commuation happens takes a 60 degree space.
A coil it is usually driven by mosfet bridge.
The coil can be drive on or off, but we can also drive it in PWM.
The PWM scheme is the way the power gates bridge is controlled in order to drive each motor coil.

In the AVR bldc driver here:
http://davidegironi.blogspot.com/2020/01/an-atmega-brushless-sensored-motor.html

I've implemented 4 PWM scheme.

H PWM L ON: PWM is performed on the ON channel


H ON L PWW: PWM is performed on the OFF channel


H PWM ON: PWM is performed on UWV channels every 60degrees, starting from U ON-ON


H ON PWM: PWM is performed on UWV channels every 60degrees, starting from V OFF-NULL



See above the signal sample recordered using a CD-ROM motor.

H PWM L ON sample


H ON L PWW sample


H PWM ON sample


H ON PWM sample



Notes
  • read risk disclaimer
  • excuse my bad english

Saturday, January 4, 2020

An ATmega brushless sensored motor driver v02


Brushless electric motor (BLDC motors) are synchronous motors that are powered by a DC electric source via an integrated inverter/switching power supply, which produces an AC electric signal to drive the motor. Hall sensored motors uses hall effect sensors or a rotary encoder to directly measure the rotor's position.
For an introduction to BLDC motors, you can take look at my sensored motor driver post, here: http://davidegironi.blogspot.it/2013/09/a-simple-brushless-sensored-motor.html


This library implements a brushless sensorled motor dirver for AVR ATmega.

tl;dr
Take this library: http://davidegironi.blogspot.com/2019/12/an-atmega-brushless-sensorless-motor.html
Set BLDC_DRIVETYPE to BLDC_DRIVETYPE_SENSORED

This is exacly the same library as the previous linked, so, for further information on this library please look at the link above.
There are just a few difference due to the hall sensor presence. The motor position this time it is discovered using hall sensors insted of using the the ZC crossing detection.
When we get the hall sensor status, we can select the next hall sensor status we expect after the step emission. The hall sensor status expected to current status is defined in the bldc.h file.
The picture below reports the commutation step agains the next status expected.


Once again, this is a simple implementation of a sensored driver, there are improvements that can be made to make this driver works even better. The purpose of this implementation is to offer a simple yet hackable way to run a bldc sensored motor.


Code
  • find the source code for this project on the sensorless post linked above

Notes
  • read risk disclaimer
  • excuse my bad english