{"id":35784299,"url":"https://github.com/sacherjj/array_devices","last_synced_at":"2026-01-07T06:39:38.332Z","repository":{"id":20211100,"uuid":"23482629","full_name":"sacherjj/array_devices","owner":"sacherjj","description":"Python Interface to Array 3710A DC Electronic Load","archived":false,"fork":false,"pushed_at":"2016-10-13T21:17:46.000Z","size":24,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-06T01:33:05.172Z","etag":null,"topics":["3710","baud-rate","electronic-load","electronics","power-electronics","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sacherjj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-30T01:57:41.000Z","updated_at":"2025-06-13T16:48:25.000Z","dependencies_parsed_at":"2022-08-28T10:23:12.451Z","dependency_job_id":null,"html_url":"https://github.com/sacherjj/array_devices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sacherjj/array_devices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sacherjj%2Farray_devices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sacherjj%2Farray_devices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sacherjj%2Farray_devices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sacherjj%2Farray_devices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sacherjj","download_url":"https://codeload.github.com/sacherjj/array_devices/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sacherjj%2Farray_devices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28233396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-07T02:00:05.975Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3710","baud-rate","electronic-load","electronics","power-electronics","python"],"created_at":"2026-01-07T06:39:36.108Z","updated_at":"2026-01-07T06:39:38.323Z","avatar_url":"https://github.com/sacherjj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"array_devices\n=========\n\nPython Interface to currently only the Array 3710A DC Electronic Load\nThis load is also sold under Gossen, Tekpower, Circuit Specialists with same 3710A model number.\n\nAll capabilities in programming data sheet are supported.  \n\nThis has been developed in Python 2.7 32-bit and Python 3.3 32-bit \non Windows 7 64-bit.  I will try to test on Linux, but don't expect issues.  \n\n## Possible Program Mode Timing Issues\nNote: When using program mode, I have noticed on both of my TekPower 3710A \nloads that programs run in a little less than 70% of expected time.  A 10 second\nstep is completing in just under 7 seconds.  I do not plan to use program mode, as\nI will be scripting the program in Python.  \n\n## Baud Rate\nThe only baud rates I can recommend are 9600 and 4800.  I have not been able to \nachieve 100% reliable communication at 19200 baud.  38400 baud often gives me more\nfailures than successes.  I have two loads on the same TTL line and running 9600 baud\nas fast as I can send commands for over 5000 commands without a failure.\n\nMy best guess is that it is a consumption data rate issue.  Once a load is in failure,\nif the packet storm is not paused, it will not recover.  When I'm talking to multiple\nloads on a single TTL serial bus, all loads must parse all messages to read if their\naddress is included.  So even if the load is spread around multiple loads, the speed\nof parsing does not change for an individual load.  It makes sense to build in some\nslight pauses between communication to allow recovery points.\n\n## pySerial\n\nWhile not required in the array3710.py code itself, pySerial is required to open the\nUSB serial connection that you provide to initialize the Array3710 object.  \n\n## Simple Example\n\nSee [simple_example.py](https://github.com/sacherjj/array_devices/blob/master/simple_example.py) for doing basic interfacing with load.\n\n## Programming Load\n\nSee [programming_example.py](https://github.com/sacherjj/array_devices/blob/master/programming_example.py) for sending a program to the load and running it.\n\n## Multiple Loads with Single USB Port\nThe DB9 cable from the Load to the 3312 TTL Serial to USB adaptor has the following pinout:\n\n1. 3.3V\n2. TX (from Computer)\n3. RX (from Load)\n5. GND\n\nAll other pins are not connected.\n\n3.3V power must be supplied from a single load to the 3312 adaptor, because it powers the \ncircuitry on the TTL side of the optoisolators.  However, if multiple loads are connected\nto this 3.3V line, there IS back feed into other loads.  If you power up a single load and\nconnect it to another with a standard Y-cable, the micro-controller will power up and \nbegin displaying characters on the LCD.  The load will not function and the LCD backlight\nwill be off, because the higher power circuits are not on.  This is a potentially damaging\nsituation for the loads.  \n\nTo daisy chain loads on the TTL side, you need to make a custom splitter.  The primary\nload will provide power for the 3312 adaptor, and MUST be on to communicate to any of the\nother loads.  Pinout for this connection is the full 4 connections:\n\n1. 3.3V\n2. TX\n3. RX\n5. GND\n\nAll secondary loads connected should use this:\n\n1. NOT CONNECTED\n2. TX\n3. RX\n5. GND\n\nI only have 2 loads connected in this manner, but you should be able to connect as many\nas you want, until you reach a noise threshold due to cable lengths.  Just make sure to \nset the addresses to unique values.\n\nNote: I am seeing some backfeeding from the pull up on the signal lines.  This is causing\nthe beeper on the secondary load to stay beeping when turned off.  This is not a problem if\nall loads are powered around the same time.  The best method to join loads would be multiple\noptoisolator pairs from one USB to RS232 TLL board.\n\n## Talking to Multiple Loads\n\nSee [multiple_loads_example.py](https://github.com/sacherjj/array_devices/blob/master/multiple_loads_example.py) for talking with multiple loads on one USB port.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsacherjj%2Farray_devices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsacherjj%2Farray_devices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsacherjj%2Farray_devices/lists"}