2 k40s one pc using k40 whisperer

Hi all new here i have 2 k40s both with nano m2 boards i am looking for assistance to get them both running on one pc using k40 whisperer. any advise would be great thanks

note i have no experience using coding or things like virtual pc’s

In your private message to me you did not tell me you have to K40s. I took it as a theoretical question. Have you tried running two sessions of K40 Whisperer and connecting to them one after the other?

If you are willing to try some things we can probably work through it.

1 Like

Yes mate I have tried that. I just get a red bar. Sorry bud I should have been clearer. I am more than happy to try stuff to work with you to try get them both working, is it easier doing it here or via private

From our FAQ, linked in the top bar, and which everyone on this site is expected to read and follow:

Keep the discussion Public

Taking a discussion private does not improve the discussion.

The reason to have a forum at all is to share information for everyone. Ask your questions in public posts. Never ask to take questions to private messages. Taking questions to private messages tells all other forum participants that they are not worth learning from your questions.

Everyone has questions. Share yours here, and we can all learn together.


Apologies :ok_hand:

Sorry, I get a little testy about people taking things private. I figure the whole point I spend so much of my time maintaining this forum is to help people share knowledge. :slight_smile:

1 Like

Yeah I appreciate that @mcdanlj especially if @Scorch and I can sort this it could be really handy for others looking to expand too.

1 Like

Updated with a lot of help from a coder friend I have 2 working instances of k40 whisperer on my machine now I have it saved to my Google drive and would love to share it with you so how’s best to do it. Should I just share the link here?

Sure, a link to a public drive share is good. Also if you can share here how you did it. Did you have to change code in whisperer? Was it configuration?


1 Like

Well it wasn’t me who got it running a someone I know recoded it with python here’s the link anyway


@Scorch this could be handy for anyone else trying to do what I have.

1 Like

The Whisperer nano_library.py currently has line 325:

self.dev = usb.core.find(idVendor=0x1a86, idProduct=0x5512)

If you change that to read:

self.dev = [d for d in usb.core.find(idVendor=0x1a86, idProduct=0x5512, find_all=True)][1]

The device will try to force grab the 2nd matching device.

Then you merely run two different copies of Whisperer. One that grabs the first device and another that grabs the second device. And these won’t interfere with each other or do anything squirrely.

Yeah @Tatarize I tried that and it didn’t work however the version in the link above does work.

The code change there should equally work so long as you use a vanilla copy and another copy. It’s based on usb index which should work, so long as you have both machines plugged in at the same time. The only other way to tell the different machines apart is by chip version, which is about the only bit of data the M2Nano has.

Pass buddy I just know it didn’t work when I did it.

Hm. I know MeerK40t works for such things across the board. But, really I ended up dividing the backend much earlier in the workflow so you get a workarea for both devices. Basically it turns out you’re much better off just running the same program two times and having it grab a different device. I’ll check the code you posted. See what tweaks were made there.

No worries @Tatarize as I don’t know code I can’t tell you what the guy did but I know it’s working :rofl:

I believe your index needs to be [0] not [1]

I have updated the code with something similar I just need to someone to test it before i put it out there.

I can test it for you since I have 2 k40s :rofl:


[0] would select the first device. So it would fill up all array with the values of the for loop there, and then take the first entry. But, you could do that with just omitting the find_all and it’ll get the first entry there.

Really that value needs to be replaced with something dynamic. [0] is the first machine. The point of that code bit is to select the second matching device which would be [1].