Coder Social home page Coder Social logo

electronic_load_px100's People

Contributors

0xjairo avatar hdc67 avatar misdoro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

electronic_load_px100's Issues

'This app can't run on your PC'

Hi, unfortunately despite many attempts I keep getting the message 'This app can't run on your PC'. Windows 10 Home 32bit 20H2, 19042.844. Maybe you have an idea how to solve this, thank you! Greetings / Rafael

pandas Lib 'append' method outdated

With pandas 2.0 and newer:
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?

Resulting in a crash when connecting to the load via bt.

See stackoverflow for more details:
https://stackoverflow.com/questions/75956209/error-dataframe-object-has-no-attribute-append

As a quick fix (proved to be working) the following can be done but shouldn't according to stackoverflow:
in data_store.py line 21
self.data = self.data.append(row, ignore_index=True)
changed to
self.data = self.data._append(row, ignore_index=True)

Edit: Seems to crash again for similar reason but in main.py when doing internal resistance measurement.
However the same fix does not work here.

Installing

Здравствуйте, Михаил. Продавец Electronic_load_px100 дал ссылку на ваше ПО. Хочу попробовать его (ПО), но не могу запустить, так как командная строка в винде, а тем более в питон - густые сумерки. Вроде походил, почитал, попробовал, но никак. Win7х64 python-3.8.6-amd64. Программа ddt4all, тоже на питоне, работает.
Просьба, если не затруднит, посоветуйте что и как сделать.

External temp logging possible?

Thank you very much for this great project! I was wondering if it is possible to add external temp sensor logging? I have a DL24P electronic load tester - please let me know if there is anything I can do to help / test!

Thanks again!

Crashes when starting

Hello,

I get a crash when starting the script.
I use python 3.8 on windows 10 and followed your instructions.
The load is conected at COM4 (USB-Serial CH340 at 3V3)

C:\Users\Stefan\Downloads\Electronic_load_px100-master>py -3 main.py
C:\Users\Stefan\AppData\Roaming\Python\Python38\site-packages\visa.py:13: FutureWarning: The visa module provided by PyVISA is being deprecated. You can replace import visa by import pyvisa as visa to achieve the same effect.

The reason for the deprecation is the possible conflict with the visa package provided by the https://github.com/visa-sdk/visa-python which can result in hard to debug situations.
warnings.warn(
swcccv_reset
Detecting instruments...
ASRL1::INSTR
SerialInstrument at ASRL1::INSTR
probe
no answer
ko
ASRL4::INSTR
SerialInstrument at ASRL4::INSTR
probe
found PX100
readAll
Traceback (most recent call last):
File "C:\Users\Stefan\Downloads\Electronic_load_px100-master\instr_thread.py", line 40, in run
self.signals.data_row.emit(self.instr.readAll())
File "C:\Users\Stefan\Downloads\Electronic_load_px100-master\instruments\px100.py", line 121, in readAll
self.__clear_device()
File "C:\Users\Stefan\Downloads\Electronic_load_px100-master\instruments\px100.py", line 220, in __clear_device
self.device.clear()
File "C:\Users\Stefan\AppData\Roaming\Python\Python38\site-packages\pyvisa\resources\resource.py", line 397, in clear
self.visalib.clear(self.session)
File "C:\Users\Stefan\AppData\Roaming\Python\Python38\site-packages\pyvisa_py\highlevel.py", line 191, in clear
return self.handle_return_value(session, sess.clear())
File "C:\Users\Stefan\AppData\Roaming\Python\Python38\site-packages\pyvisa\highlevel.py", line 251, in handle_return_value
raise errors.VisaIOError(rv)
pyvisa.errors.VisaIOError: VI_ERROR_NSUP_OPER (-1073807257): The given session or object reference does not support this operation.

C:\Users\Stefan\Downloads\Electronic_load_px100-master>

Regional settings and decimals

I need to change the windows regional settings to using a point, otherwise the program can only set integer numbers. Obviously a input to float conversion issue.

Improvment request

Михаил, добрый день!
По Вашей рекомендации с Youtube, зарегистрировался здесь, чтобы выяснить некоторые подробности и если возможно, попросить о некоторых добавлениях к возможностям программы.

Internal r

Здрвствуйте!
Можно узнать об алгоритме измерения внутреннего сопротивления?
Хоть в двух словах.
Не ради интереса спрашиваю.
Во всех китайских девайсах заложен "корявый" алгоритм определения внутреннего сопротивления, измеряемого на постоянном токе. Результаты - просто жуть.
Однако есть методика измерения, описанная в стандартах (например в ГОСТ). И в стандартах измерение на постоянном токе считается более точным, по сравнению с переменным током.
Если интересует - дам и ссылки на стандарты, можно и обсудить... в питоне ничего не понимаю. но в Си - подобное делал.
Может получиться уникальная функция, которой не видел ни у кого.

Current axis scale resets to 10A on each redraw

When changing the setting for the current scale (default 10), the chosen value is used until the next redraw.
On each redraw it reverts to 10A, which makes the current plot pretty useless when using a low current.

I'd try to fix this myself, but I'm just getting into PyQT myself so have no idea where to start. Yet...

Crash on open because of pandas 2.0, append (previously deprecated) was removed.

I try run logger but get error:

python main.py
Detecting instruments...
ASRL/dev/ttyUSB0::INSTR
SerialInstrument at ASRL/dev/ttyUSB0::INSTR
probe
found PX100
readAll
readAll
readAll
readAll
common /home/admin home /home/admin sel /home/admin
swcccv_reset
{'is_on': 0.0, 'voltage': 3.966, 'current': 0.0, 'time': datetime.time(0, 6, 39), 'cap_ah': 0.11, 'cap_wh': 0.0, 'temp': 29.0, 'set_current': 1.0, 'set_voltage': 3.0, 'set_timer': datetime.time(0, 0)}
Traceback (most recent call last):
  File "/mnt/usb/DL24_BLE_Logger-main/Electronic_load_px100/main.py", line 34, in data_callback
    self.datastore.append(data)
  File "/mnt/usb/DL24_BLE_Logger-main/Electronic_load_px100/data_store.py", line 21, in append
    self.data = self.data.append(row, ignore_index=True)
                ^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.11/site-packages/pandas/core/generic.py", line 6202, in __getattr__
    return object.__getattribute__(self, name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?
{'is_on': 0.0, 'voltage': 3.966, 'current': 0.0, 'time': datetime.time(0, 6, 39), 'cap_ah': 0.11, 'cap_wh': 0.0, 'temp': 29.0, 'set_current': 1.0, 'set_voltage': 3.0, 'set_timer': datetime.time(0, 0)}
Traceback (most recent call last):
  File "/mnt/usb/DL24_Logger-main/Electronic_load_px100/main.py", line 34, in data_callback
    self.datastore.append(data)
  File "/mnt/usb/DL24_Logger-main/Electronic_load_px100/data_store.py", line 21, in append
    self.data = self.data.append(row, ignore_index=True)
                ^^^^^^^^^^^^^^^^
  File "/home/admin/.local/lib/python3.11/site-packages/pandas/core/generic.py", line 6202, in __getattr__
    return object.__getattribute__(self, name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?
Aborted (core dumped)

https://stackoverflow.com/questions/75956209/error-dataframe-object-has-no-attribute-append

I try replace self.datastore.append(data) to self.datastore._append(data)
get error

$ python main.py
Detecting instruments...
common /home/upya4ko home /home/upya4ko sel /home/upya4ko
swcccv_reset
ASRL/dev/ttyUSB0::INSTR
SerialInstrument at ASRL/dev/ttyUSB0::INSTR
probe
<class 'pyvisa.errors.VisaIOError'>
('VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.',)
VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.
error reading bytes
no answer
ko
No instruments found

Won't Run Under Rasbian OS

I'm having trouble getting this to run under Rasbian, Python v3.7.3. I'm no programmer by any means, any ideas on a fix?

Traceback (most recent call last): File "./main.py", line 56, in <module> Main() File "./main.py", line 21, in __init__ GUI(self) File "/home/pi/Load/gui/gui.py", line 209, in __init__ self.window = MainWindow() File "/home/pi/Load/gui/gui.py", line 42, in __init__ uic.loadUi('gui/main.ui', self) File "/usr/lib/python3/dist-packages/PyQt5/uic/__init__.py", line 226, in loadUi return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix) File "/usr/lib/python3/dist-packages/PyQt5/uic/Loader/loader.py", line 72, in loadUi return self.parse(filename, resource_suffix, basedir) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 1021, in parse actor(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 828, in createUserInterface self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 273, in createWidget self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 503, in createLayout self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 546, in handleItem self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 273, in createWidget self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 273, in createWidget self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 503, in createLayout self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 546, in handleItem self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 503, in createLayout self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 546, in handleItem self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 273, in createWidget self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 503, in createLayout self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 546, in handleItem self.traverseWidgetTree(elem) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 806, in traverseWidgetTree handler(self, child) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 264, in createWidget self.stack.push(self.setupObject(widget_class, parent, elem)) File "/usr/lib/python3/dist-packages/PyQt5/uic/uiparser.py", line 230, in setupObject self.wprops.setProperties(obj, branch) File "/usr/lib/python3/dist-packages/PyQt5/uic/properties.py", line 415, in setProperties prop_value = self.convert(prop, widget) File "/usr/lib/python3/dist-packages/PyQt5/uic/properties.py", line 378, in convert return func(prop[0], **args) File "/usr/lib/python3/dist-packages/PyQt5/uic/properties.py", line 129, in _enum return self._pyEnumMember(prop.text) File "/usr/lib/python3/dist-packages/PyQt5/uic/properties.py", line 117, in _pyEnumMember return getattr(scope, membername) AttributeError: type object 'QAbstractSpinBox' has no attribute 'AdaptiveDecimalStepType'

CSV Logs

Hi Mikhail,

Is there a way to make the software log direct to a CSV file?

I ran a couple of load tests which ran for longer then 24hrs and the program crashed and I had no record of the tests, I'm using a very basic laptop so I'm not sure if it was a out of memory issue but it would be good it does crash I have the data.

Thanks,
Chris

Protocol

The control frame looks like: 0xB1 0xB2 CMD D1 D2 0xB3 0xB4

Are you sure?

My experiments show:
0xB1 0xB2 CMD D1 D2 0xB6

remote load enable/disable not workling + other stuff

Hi,
I got the ACOOLOO 180W Load (DL24P) variant from amazon https://www.amazon.de/gp/product/B098FCZJJF/
So far the logging and internal resistance measurements is working fine, however I'm unable to en/disable the load via the gui, only pressing the button on the load itsself is working.

Also some small things I like to mention:

  • Running on MacOS 12.5.1 (M1) for install PyQt5 was needed
  • During the measurement small spikes appear (at 1A load they were between +0,1 and +0.2A) . I'm unsure weather this is a glitch in communication or actual happening on the hardware. The big peaks are from the resistance measurement.

image

  • the x/y coordiantes on the top right are nice, but it would be even cooler if they display the voltage too and not just the current
  • the Zoom to recatangle and settings for the max/min axis values are (also) resetting as in #13 described

Questions:

  • what is r_a exactly? I think r_b is the internal resistance, right?

Request:

  • increasing the resolution of the WH capacity (currently one decimal place, maye do the calculation in the programm instead taking the value from the board?)
  • adding the external temperature sensor for battery temps (its currently only displaying the internal one)
  • adding a third axis for the temperature sensor(s) and adding one decimal place as well if possible (the board got the missing decimal on display)
  • is there a way to use the load for charging measuremens as well? I'm thinking about plugging an external power supply to the positive input, then the battery with plus on the negative input and the negative psu to the negative battery pole

I'm really liking your project - it makes this capacity tester at least 200% more useful! Great work!

W7 + Bluetooth = huge delay

Приветствую, Михаил!
Спасибо за отличный продукт! Удобный интерфейс и хороший функционал.
Я установил версию 64 бит под Windows 7 64 бит. Софт без проблем запустился, нашёл данные в Bluetooth и начал строить график. Но задержки обмена данными и реакции на элементы интерфейса достигают 5 - 15 секунд. Я попробовал версию x86 - та же проблема. Ноут EEE PC 1215n, загрузка процессора и памяти небольшая. Нагрузка DL24 150W
https://a.aliexpress.com/_AZoI6B
Другое приложение на ПК работает без задержек, но сильно уступает вашему софту.

Quick simple question about the PX100 units?

Hello misdoro, I am looking forward to trying your software but maybe you can help me with a simple issue with my unit first as you know these PX100 loads well.

I have just had a PX100 load delivered but cannot seem to get the cursor to position under the "I=" current setting symbol so that I can change it to "V=" to set voltage. There seems to be nothing in the tiny leaflet that came with the unit to tell me how to do this. Going by the instructions on the sellers listing it looks as though just short pressing the top right hand "set" button repetitively should rotate the cursor position under the "I=", then the digits to set the value for current & voltage.

On this unit short pressing the "set" button only rotates the cursor under and allows to set the last 3x digits (0.00) for current ... I can't seem to be able to place the cursor under "I=" to change to the voltage setting??? Do you think this is a fault in the unit or is it me not pressing the correct key combination? .......all other menu's and buttons seem to function normally (e.g. long press "set" takes me into the setup menu and I can edit all the settings there and the rest of the buttons function normally, the voltmeter on the unit reads very accurately etc.).

Just can't get the cursor to position under the "I=" ..... what do you think? ... Thanks in advance for any help you can give.

Woops nearly forgot ... it's board version 2.81 ... software v2.45 ... :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.