Author Topic: B3603 DC/DC Buck Converter mini review and how the SET key could be fatal...  (Read 105346 times)

0 Members and 2 Guests are viewing this topic.

Offline flywheelz

  • Regular Contributor
  • *
  • Posts: 142
  • Country: us
Right after I blew up the B3606 I ordered the B3603 as my 2nd unit so that I had a working unit while fixing the B3606.  I got the B3606 working now but its not properly calibrated yet as I don't know how to dissipated 2.8amps during F4 step. 

The other day I pulled out the 12v-80v Boost Converter that I had ordered a while back.  Plugged in a 9v battery into it and it was outputting similar voltage tested with  :-DMM.  I figured its safe for B3603.  Tried turning the boost Vpot a little but the voltage set to 30v on B3603 still stuck under 9v.  I got an idea to plug in 12v adapter instead of the 9v battery.  Next thing I hear is BAMM! and I smell the magic smoke  :palm:  The LM2596 actually blew apart and was dangling on one leg.  The XL1509 and both MCP6002 packed up as well on the bottom board.  The top board lost both 74HC595's and the ST mcu  :scared:  I repaired the bottom board of B3603 but thats it.  I could fix the top board but there is no  firmware with button control as far as I know.

Quote
The 10mA extra seems like something re-calibration can easily deal with.  If you have to play with that part of the circuit, perhaps it is a good idea to swap out the current sense resister with a better one?  I changed mine with better temp-co.  Not worth doing it just for the slight improvement, but if you are already messing around there...
  Once I figure out a way to dump 2.8A, I will try calibrating.


Quote
Did you check the noise?
I checked Vout and at 5v I see about 25mV, at 10v ~95mV and at 12v ~30mV.

Quote
That darn thing is pretty robust.  I too had to change out the guts (due to shorting) of the one of my 3603.  XL1905, the inductor and capacity for the XL1905, pair of 74HC595, pair of MCP6002.  Initially, I did not change the caps with the XL1905.  It fired back up and needed a re-calibration before the reading reads correctly.  I suppose variation with the mcp6002 is to blame.

It also came back to life with a bit more noise.  After changing the caps and inductor, the noise went back down to similar to my other two units.
I will need to check XL1905 output for noise.

I am getting good experience fixing these things with my hot air station  :-DD

P.S. I've subjected the little B3603 to 90volts  :palm:  The booster converter goes past whats stated.
« Last Edit: October 22, 2016, 03:44:47 pm by flywheelz »
 

Offline Rick Law

  • Super Contributor
  • ***
  • Posts: 2569
  • Country: us

Quote
The 10mA extra seems like something re-calibration can easily deal with.  If you have to play with that part of the circuit, perhaps it is a good idea to swap out the current sense resister with a better one?  I changed mine with better temp-co.  Not worth doing it just for the slight improvement, but if you are already messing around there...
  Once I figure out a way to dump 2.8A, I will try calibrating.
..
P.S. I've subjected the little B3603 to 90volts  :palm:  The booster converter goes past whats stated.

Try older incandescent automobile light bulb?

I use a pair of 12V dual filament brake+parking lights.  Each bulb handles up to 24W with the two filaments.  They are soldered to a proto-board with 18AWG wires.  Soldering them to a board is mainly to ensure the hot bulb are not wiggling around.  They can get dangerously hot.   When I want to draw the most (48W = 4A  12Volt), I use all 4 filaments. (no fancy switches, I just solder in the filaments via the 18 AWG leads to the load-in/load-out wires).

I have gone over 3A with that setup (max my other power supply was able to put out).  The bulbs can dissipate the power without problem, but they are hand-burners if not careful.   
« Last Edit: October 22, 2016, 04:12:30 pm by Rick Law »
 

Offline ProfessorGT

  • Newbie
  • Posts: 1
  • Country: us
Re: B3603 DC/DC Buck Converter mini review and how the SET key could be fatal...
« Reply #227 on: November 28, 2016, 03:18:26 pm »
Hi all,
Thank you all for the thread and the good read that helped my work a lot.
Coming a bit late to this thread but I have finished a new user interface for the B3603. I've been able to squeeze into the module's STM8S003FS all the necessary functionnalities :
- use of a rotary encoder as input interface (no pushbutton), with acceleration sensing
- floating point calculation
- conversion ADC -> volt, amp using degree 3 polynomials (of course, an affine conversion is also possible with x^3 & x^2 coefficent = 0)
- floating point first degree filters
- calculation & display of power (AxI), mAh & Wh
- uart interface for data logging with Tx at 9600 bds
- sampling period for logging from 1s to 100s
- datalogging of input voltage also
- a console with Rx to accept basic commands : voltage & amp setpoint setting, polynomials coefficient change for calibration, output enable/disable
- the unused pin 8/con1 is used as an output for controlling an external fan when current is above a (changeable) threshold
- setpoint values, Wh & mAh and parameters are store in eeprom and restored automatically at power-up

With datalogging, the B3603 module is not only a PC controllable power supply, it can also be used to datalog voltage and current of an external supply.
The performance is as stated by other users above, amazingly good (when you set the output voltage to 10.00V, the real voltage will be 10.00 !). With a good user interface (which the original version does NOT have), the module is now really usable. I've used it to test leds, motors, charging battery...
The nice thing is that since it can be recalibrated by the end user using an ascii console (a process that can be automated by scripting), you can essentially get the best accuracy in the interval you wish.

I will post a video to show how the rotary encoder has made the user interface really really user-friendly. More documentation and pictures will come. I'll keep the firmware proprietary for the moment.

About the weird wiring of the pushbuttons in the original schematics, it is a multiplexing scheme to scan 4 buttons using only 2 I/O. Here is how it works, for forumers who want to get back to programming the STM8S :
button OK : PC7 = in pullup, PD1= out 0V, read PC7=0 => pressed
button UP : PC7 = out 0V,    PD1 = in pullup, read PD1=0 => pressed
button SET: PC7 = in pullup, PD1 = in pullup, read PC7=0 => pressed
button DN : PC7 = in pullup, PD1 = in pullup, read PD1=0 => pressed

I have connected the rotary encoder to the button and used sucessfully the same scanning scheme to read the encoder (see wiring diagram). The scanning is fast enough to manage the encoder acceleration (if it is turned fast enough, each step will be +- 10 instead of +-1). With acceleration sensing, it's much easier and faster (and imho funnier) to make big changes, for example from 3.30V to 25.00V.

About the voltage surge at power-on mentionned above, I was very concerned but I personnaly have NOT seen it. I've order 5 more modules, I'll check it again to be sure it won't ever be a problem.

So, Hobby16,

Haven't heard any more from you after your post, and being a complete neophyte to the electronics world, I'd certainly like to play around with your modification. Can you make the firmware and all details of completing your mod available? (rotary encoder part number, etc)

Sure would be nice.

Thanks!

So many posts of very valuable benefit to all, just want to say thanks to everyone. I've just been watching in the background. I have one of these B3603 boards and put it in an enclosure to use as a tester. Works great, but I need to buy or build one that's capable of putting out, or controlling a 20amp DC output. I love the VC/CC qualities of this unit, and it is the whole reason I purchased one and use it.

Thanks Again!
 

Offline flywheelz

  • Regular Contributor
  • *
  • Posts: 142
  • Country: us
Anyone know if the open source Alternative firmware for the B3603 has the display and button working?  Any function missing that are in the original firmware?
 

Offline ass20

  • Contributor
  • Posts: 11
firmware with source and schematic
https://github.com/baruch/b3603
 

Offline RailWar

  • Newbie
  • Posts: 3
  • Country: ru
I recompiled sources with cosmic stm8 and did deep recoding. The firmware occupies 5800 bytes. Now I make simple menu for buttons. Then I'll bring sources. Here will no new functions. I hope others will do these.
 

Offline golub2017

  • Newbie
  • Posts: 2
  • Country: cs
Re: B3603 DC/DC Buck Converter mini review and how the SET key could be fatal...
« Reply #231 on: February 22, 2017, 06:55:47 am »
Hi I have dead B3606, MCU burnt, and I buy new from China. I have stlink v2 programmer and wanna try alternative version of firmware.
What software I need to compile firmware and to burn into chip.

Thanks
 

Offline jwasys

  • Newbie
  • Posts: 1
  • Country: nl
Hello Folks,

Using Barach's firmware, with my unit, I could not save the settings to EEPROM. I fixed this in the source.

I plan to create a battery charger / discharger with coulomb counter. Eventually a SLA desulficator.

I really appreciate the work done in this tread !

Arian
 

Offline RailWar

  • Newbie
  • Posts: 3
  • Country: ru
My firmware is not ready, but has extra commands in terminal, menu with buttons, useful calibration (with multimeter).
Instructions for the flash on https://hackaday.io/project/4362-power-supply-b3603-alternative-firmware
 

Offline jcastle83

  • Newbie
  • Posts: 1
  • Country: us
Re: B3603 DC/DC Buck Converter mini review and how the SET key could be fatal...
« Reply #234 on: September 19, 2017, 01:23:14 am »
Hi Railwar, thanks for making improvements.

Do you know if this is written to be usable with all the different power supplies that  have this as a "controller" daughtercard?

Eg, BST400 / BST900?

If you're able to make a simple addition, it would be to "STOP at Current/10" or a "low current" monitor menu.  Where the output is turned off as it's monitoring Amps, and sees that the CC mode has finished, it's in Constant Voltage, and as CC moves to the original value / 10.

Thanks
 

Offline RailWar

  • Newbie
  • Posts: 3
  • Country: ru
Unfortunately,  I have not a time for this project now. May be in next year
 

Offline iafilius

  • Newbie
  • Posts: 1
  • Country: nl
Re: B3603 DC/DC Buck Converter mini review and how the SET key could be fatal...
« Reply #236 on: December 02, 2017, 10:55:57 pm »
Hi,

just new to the forum,  new to this thread, Arjan is my name.
I own a b3603 and bst400 and I'm interested in a full functionality device:
serial controllable, and/or standalone using buttons and display.
option to program some additional customized features.

a few topics

buttons:

On the buttons which Hobby16 functionaly described correctly, I basically
rediscovered/reverse engineered it and published working code for it.

See Barch's git repo issue #11 "Use the buttons" (https://github.com/baruch/b3603/issues/11

key detail not mentionned before is there is need to some delay in reading the secondary keys
because rise time when switching from output/low to input/pull-up(high) has
a rather huge rise time. (checked with scope)

I noticed afterwards several implementations but no code. well here it is for
public.

display:

Started used Baruch's git repo, where the display is not working properly, it shows only a last digit.
About to dive into that, I noticed RailWar's post of binary firmware with
brief description in whatsnew.txt

flashing that firmware _has_ working digits, buttons, serial and a button
controlled menu's.
That really looks great!!
I hope source will be published soon so we/i can work on that and see if it
can made to work on the bst400 family as well.

I'm curious if the working display is related to compiler or actually fixes
have been applied, and what those optional fixes where.


menu:
RailWar's 2.0.0 firmware has made a useable menu using buttons, great!


calibration RailWar's version:
calibration on RailWar's Version 2.0.0cosmic isn't clear to me. perhaps
someone can give me a hint on this (source not available yet).
What I tried:
Initial values:
CALIBRATION
CALIBRATE Uin ADC: 6.4601/87.3947
CALIBRATE Uout ADC: 5.6507/452.0000
CALIBRATE Iout ADC: 0.5156/200.0000
CALIBRATE Uout PWM: 0.1820/109.9180
CALIBRATE Iout PWM: 1.9394/160.0000
OK


RCALIBRATION
CALIBRATE Uin ADC: 423366/5727497
CALIBRATE Uout ADC: 370323/29622272
CALIBRATE Iout ADC: 33792/13107200
CALIBRATE Uout PWM: 11928/7203586
CALIBRATE Iout PWM: 127100/10485760
OK
Wanting to start with PWM output voltage calibration and ADC voltage
calibration.
I thought just re-apply the given values to discover how it works
>PWM_UOUT 0.1820/109.9180
CALIBRATE a/b: 0.0000/1020.0000
OK
but a and b value get converted to .. well I don't know.
any ideas please?


Voltage peak when powering on:

Described on:
https://github.com/baruch/b3603/issues/3

Suggested by user flex in this thread (2015) is a solution removing R16 and adding a resistor (min 10K, advised
100K) from Vin to LM2596 (~OE).

That works properly as long the top/controll board is attached.
The maximum input voltage on LM2696 is  25V for ~OE  might get exceded, depending on input voltage and ~OE
(non specified) input impedance, and resistor you had chosen.
I recommend using a voltage devider of 2x 47K:  Vin - 47K ~OE - 47K - gnd as
is documented in LM2596 product pages. (and still removing R16)
resulting in:
-making the fundamental power-on voltage peak problem go away
-possible to safely remove topboard without exceeding 25V for ~EO
-not exceeding maximum current injection of 4mA to the SMT8 (output not enabled)
-not exceeding maximum current of the STM8 when output is enabled.

Did not test it _yet_, waiting for a few 47K smd resistors.

Did anyone investigate this issue on the BST400? (I guess the same issue, but no
LM2596 is used), so solution might be a littlebit different.


usage on BST400:
swapped the topboard on a BST400 with a B3603 with RailWay's 2.0.0 firmware.
It drived the output voltage, tested set voltage 15V & 20V but outputs 60V and 80
volts and CC led keeps burning (which i didn't expect).
so my first impression is it is going to work, needed (heavy) recalibration, new
definition of maximum values, and maybe some port swaps in software.
Did anyone investigate this further?


Regards,

Arjan
 

Offline CapnBry

  • Contributor
  • Posts: 14
  • Country: us
Unfortunately,  I have not a time for this project now. May be in next year
Sorry to be digging up such an old thread but I have also flashed one of my B3603 units with @RailWar's 2.0.0cosmic. The menuing system works and I can turn on and off the output and set parameters. However, I can't figure out the ADC_UIN, ADC_UOUT, ADC_IOUT, PWM_UOUT, PWM_IOUT functions either. I can set the output voltage and when it turns on it is pretty close (5.000V set 5.034V output) but the display is way off, reading 6.170V. Current is also about 10mA, but reads as 0.393A. The same is true at 9Vout, the values are pretty close. I assume this means PWM_UOUT is at least pretty close, but I need to get the ADC_xxx set to get it to read properly?

It seems like PWM_UOUT expects to be run twice with at least one value. The first time it says NEXT and the second time it "completes" and sets a coefficient?
Code: [Select]
> PWM_UOUT 5
NEXT
OK
> PWM_UOUT 5
CALIBRATE a/b: 0.0000/1020.0000
OK

It is interesting to note that if the number is 63.000 or higher I get "NUMBER TOO BIG" returned. My UOut PWM becomes 0/1020 no matter what I try to put in there. The second value is always the current PWM (Uout PWM from RSTATUS). I've also tried going back to the original UOut PWM values with "UOUTPWMA 0.1820" and "UOUTPWMA 11928" both of which report "UNKNOWN COMMAND". I also tried "CALVOUTPWMA n" and got the same response so the original commands don't seem to be present or they are implemented in an incompatible command format.

Any chance of getting that source code so I can understand how to do my calibration, RailWar?

EDIT: I think I figured it out. ADC_UIN, ADC_UOUT, ADC_IOUT, PWM_UOUT, PWM_IOUT all expect to receive the current measured voltage in volts (for UIN/UOUT) or measured current in amps (for *_IOUT). To calibrate PWM_UOUT (output must be on)
Code: [Select]
VOLTAGE 1.000
COMMIT
PWM_UOUT 1.012       <-- 1.012 is the measured output voltage
VOLTAGE 10.000
COMMIT
PWM_UOUT 10.060     <-- again, measured output voltage
# CALIBRATE a/b: 0.1810/108.9439
In short, you need to be outputting at 2 different points and it appears to save the raw PWM or ADC for the first point, then when you tell it the voltage at the second point, it calculates the slope (a) and offset (b) using the two values to create the new calibration coefficient for that (PWM Vout in this case). Note that for PWM_UOUT, you need to be in constant voltage output mode, PWM_IOUT needs to be in constant current mode, and the ADC_xxx values need to just be measured.

So the calibration procedure would be to first set the PWM_UOUT
-- Set VOLTAGE 1.000
-- Measure voltage with a multimeter, set `PWM_UOUT v` where v is the measured voltage, e.g. 1.012
-- Set VOLTAGE 10.000
-- Measure voltage with a multimeter, set `PWM_UOUT v` where v is the measured voltage, e.g. 10.090

Now make the displayed voltage match actual with ADC_UOUT
-- Set VOLTAGE 1.000
-- Measure voltage with a multimeter, set `ADC_UOUT v` where v is the new measured voltage, e.g. 1.001
-- Set VOLTAGE 10.000
-- Measure voltage with a multimeter, set `ADC_UOUT v` where v is the measured voltage, e.g. 9.997

To make the input voltage accurate use ADC_UIN
-- Use a power supply to set the voltage to something lowish, like 6V
-- Measure voltage with a multimeter, set `ADC_UIN v` where v is the measured input voltage, e.g. 6.000
-- Change the input power supply to a higher value, like 24V
-- Measure voltage with a multimeter, set `ADC_UIN v` where v is the measured input voltage, e.g. 24.000
-- Note that you must leave the input power on while changing the voltage!

Finally, do the same thing you did for PWM_UOUT and ADC_UOUT except now for current. I just inserted my two multimeter probes directly into the output, shorting it. The range on the multimeter was set for 10A.
-- CURRENT 0.200
-- Note the current on the multimeter and set `PWM_IOUT a` where a is the current, e.g. 0.234
-- CURRENT 1.000
-- Note the current on the multimeter and set `PWM_IOUT a` where a is the current, e.g. 1.050
-- Repeat, except this time we're adjusting the displayed current so use ADC_IOUT

-- SAVE and you're done and calibrated. This is only a 2 point calibration so pick a low and high value that are somewhat far apart to minimize error.

And for my final thing of note, you can power an ESP8266 from the 5V/GND on the UART header on the left side and make a wifi connected CC/CV power supply! It seems to work ok with both a NodeMCU 1.0 board and a WeMos D1 Mini, although the latter is much smaller. A bare ESP-12 module could also be used, but I wouldn't try to power it from 5V directly (the module will eventually overheat and die) or the 3.3V on the SWIM header (because the B3603 LDO can't put out enough power), so at the very least you need an ESP module and a 3.3V step down or LDO. At that point you might as well just get a WeMos so you've have that and a USB TTL serial cable. I bet a very clever person could write ESP firmware to flash the B3603 too, which would make it a one stop shop for getting a wifi connected power supply with no stlinkv2 or anything.

« Last Edit: July 18, 2018, 04:46:20 am by CapnBry »
 

Offline Waterman

  • Newbie
  • Posts: 2
  • Country: us
Glad you brought it back as I just finished reading all 10 pages. I currently have 2 3603s running as a charging system for a solar power setup. Interesting interactions of the two of them seen so far:
Unit 1 powers up at 3.85volts. Unit 2 waits till over 4.25 volts.
Unit 1 not only acts as a buck unit but it also will go into boost mode when the voltage is in the 9.6V range and raise the output to about 14.1 volts. That voltage then runs into a 6 amp 50v diode on both the + and - sides. Unit 2 does the same but goes up to the set point of 14.84V. Current goes up slowly from about .008amp while #2 goes from about .012amp. Both are set at 14.84 volts and 2.00amps as their limits. 14.84 - blocking diode  voltage yields 14.14v to the batteries.

Had been looking for the board connections which is what brought me here. So old threads are still useful. ;)

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf