IIRC, one of the 4 channel rigol scopes has/can be hacked as a logic analyzer. If power is good, and the connections are good, it sounds like there may be a communication problem. A logic analyzer could help with that. Maybe your I2c addresses are wrong in the firmware. I’d double check that – although if it was working and then suddenly stopped working, that would point to something else being the problem.

Yeah no, it’s the older 2 channel so no luck there. Yeah it worked fine, now no longer. I’ll order another teensy to see if I can get it to work again.

I have this super cheap logic analyzer, which I believe I bought off amazon (it was quite a few years ago). Anyway, it works fine, and has come to the rescue on rare occasions…

2 Likes

Alright so then I hook that up to the i2c connectors to see if messages are being sent out and received? This is slightly beyond my knowledge, see I’m an analog boy, this digital stuff is over my head.

Yes, you can capture a snapshot of the communication (or lack thereof), and display it on your computer screen. The software can do smart stuff to help you interpret the communication (e.g. it can recognize certain sequences of pulses as start/read/write/address, and so on). You can see if the teensy is talking and the Neotrellis is responding/or not…

1 Like

How are you testing?

Have you tried going back to the multitrellis test sketch/hex?

Thanks for your advice so far. Hmmm. Tried it on a different Win10 machine, same result. One LED lights up for a tiny moment, then nothing…

Checked the USB device view, that seems to be detected the right way (please confirm if possible), it stays connected:
monome USB Serial Device Communication Yes Yes No No COM5 m4676055 04/06/2020 18:50:43 03/06/2020 07:44:32 16c0 0483 2.75 02 02 01 MANCAVE-REBORN usbser @usbser.inf,%UsbSerial.DriverDesc%;Microsoft USB Serial Driver usbser.sys SYST Microsoft USB Serial Device (COM5) 100 mA 1.10 USB Serial Device 10.0.18362.1 UsbSerial_Install usbser.inf USB\VID_16C0&PID_0483\m4676055 Removable, UniqueID, SurpriseRemovalOK

So not sure how to continue with this. Any creative ideas? Anything obvious I might have missed?

node-serialoscd != monome’s serialosc?

It’s a completely independent rewrite in JS running on Node, so they couldn’t possibly be more different.

The issue I had before with lockups with all LEDs lit was a power problem, not a node-serialoscd problem.

1 Like

First thing I tried, nothing.

Maybe check all your address jumpers?

Another test would be to run one of the i2c test sketches to scan the i2c bus and see if all the addresses are showing up. If one address is missing or wrong it can throw off the whole thing.

in Arduino - Look at Examples > i2c_t3 > basic_scanner, or advanced_scanner (in the Examples for Teensy 3.1/3.2 section). You’ll need to ground a pin to trigger the script while connected to your computer with the serial monitor open.

Are you able to test on a Fates? I found the one LED lighting on my DIY Grid when initially powered, but once I fire up a Norns app like Awake it immediately springs to life.

I’m hoping you crack the code. I tried and failed. I upgraded to max4live thinking I could use it with Max… haven’t seen anything promising.

That is the original intention - I plan on building a Fates, but it seems the PCB is stuck in customs…fingers crossed

Hmm that is unfortunate. Is there another place to get help on the serialosc issue?

I’ve got a request in with DanDerks and I’m waiting to hear back if there’s any support-y stuff he can share.

It’s possible there’s some timing of messages thing happening with the windows version that’s throwing things off.

I don’t have any windows machines so I can’t test for it.

BTW - the one LED in the corner thing is a “startup” indicator. That should happen once the init of the firmware happens and it’s communicating.

Anyone know how to sniff the serial communications on win?

Thanks on the LED thing - I thought that’s what it would be!

Looking at the port config, this is what I see:


Does this seem right?

Using the Arduino IDE Serial Monitor I can see that button presses indeed cause serial communication. I installed a COM sniffer and got the following on random button presses when opening the device from the sniffer:

00000086|2020-06-05 08:11:10,8821223|+0,7011613|IRP_MJ_READ|UP|0x00000102|21 03 00 |!..|
00000088|2020-06-05 08:11:11,0801440|+0,1975726|IRP_MJ_READ|UP|0x00000102|20 03 00 | ..|
00000090|2020-06-05 08:11:14,7869764|+3,7067970|IRP_MJ_READ|UP|0x00000102|21 06 06 |!..|
00000092|2020-06-05 08:11:15,0121115|+0,2251029|IRP_MJ_READ|UP|0x00000102|20 06 06 | ..|
00000094|2020-06-05 08:11:15,4932107|+0,4810698|IRP_MJ_READ|UP|0x00000102|21 08 06 |!..|
00000096|2020-06-05 08:11:15,7174669|+0,2241464|IRP_MJ_READ|UP|0x00000102|20 08 06 | ..|
00000098|2020-06-05 08:11:15,9995250|+0,2814511|IRP_MJ_READ|UP|0x00000102|21 09 04 |!..|
00000100|2020-06-05 08:11:16,1975568|+0,1979924|IRP_MJ_READ|UP|0x00000102|20 09 04 | ..|
00000102|2020-06-05 08:11:17,1738970|+0,9763108|IRP_MJ_READ|UP|0x00000102|21 0a 02 |!..|
00000104|2020-06-05 08:11:17,3438142|+0,1698731|IRP_MJ_READ|UP|0x00000102|20 0a 02 | ..|

Other than that I tried sniffing while restarting the serialoscd service (with and without opening the device from the sniffer) and cannot see any ongoing communication other than the device connecting.

00000000	2020-06-05 08:19:50,6219408		PnP Event: Connect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…

But to be honest I’m not sure I’m doing this right.

00000000|2020-06-05 08:28:12,8276411||PnP Event: Connect|DOWN|0x00000000|5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …|\.?.?.\.U.S.B.#.V.I.…
00000001|2020-06-05 08:28:12,8276758|+0,0000347|IRP_MJ_CREATE - process 16668 (Studio.exe)|DOWN|0x00000000|||
00000002|2020-06-05 08:28:12,8277239|+0,0000481|IRP_MJ_CREATE|UP|0x00000000|||
00000019|2020-06-05 08:28:12,8303765|+0,0000079|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_BAUD_RATE|DOWN|0x00000000|00 c2 01 00 |....|
00000020|2020-06-05 08:28:12,8333531|+0,0029766|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_BAUD_RATE|UP|0x00000000|||
00000021|2020-06-05 08:28:12,8333596|+0,0000065|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_CLR_RTS|DOWN|0x00000000|||
00000022|2020-06-05 08:28:12,8333615|+0,0000019|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_CLR_RTS|UP|0x00000000|||
00000023|2020-06-05 08:28:12,8333684|+0,0000069|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_CLR_DTR|DOWN|0x00000000|||
00000024|2020-06-05 08:28:12,8342937|+0,0009253|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_CLR_DTR|UP|0x00000000|||
00000025|2020-06-05 08:28:12,8343001|+0,0000064|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_LINE_CONTROL|DOWN|0x00000000|00 00 08 |...|
00000026|2020-06-05 08:28:12,8373562|+0,0030561|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_LINE_CONTROL|UP|0x00000000|||
00000027|2020-06-05 08:28:12,8373615|+0,0000053|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_CHARS|DOWN|0x00000000|00 00 00 00 36 42 |....6B|
00000028|2020-06-05 08:28:12,8373634|+0,0000019|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_CHARS|UP|0x00000000|||
00000029|2020-06-05 08:28:12,8373662|+0,0000028|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_HANDFLOW|DOWN|0x00000000|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000030|2020-06-05 08:28:12,8373673|+0,0000011|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_HANDFLOW|UP|0x00000000|||
00000031|2020-06-05 08:28:12,8373716|+0,0000043|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_TIMEOUTS|DOWN|0x00000000|0a 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 2c 01 00 00 |................,...|
00000032|2020-06-05 08:28:12,8373729|+0,0000013|IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_TIMEOUTS|UP|0x00000000|||
00000034|2020-06-05 08:28:25,7562630|+12,9188454|IRP_MJ_READ|UP|0x00000102|21 07 05 !..|
00000036|2020-06-05 08:28:25,9542996|+0,1979938|IRP_MJ_READ|UP|0x00000102|20 07 05 | ..|
00000038|2020-06-05 08:28:27,1595552|+1,2052309|IRP_MJ_READ|UP|0x00000102|21 07 04 |!..|
00000040|2020-06-05 08:28:27,3574773|+0,1978825|IRP_MJ_READ|UP|0x00000102|20 07 04 | ..|
00000042|2020-06-05 08:28:28,0537446|+0,6962420|IRP_MJ_READ|UP|0x00000102|21 07 02 |!..|
00000044|2020-06-05 08:28:28,1957698|+0,1419931|IRP_MJ_READ|UP|0x00000102|20 07 02 | ..|
00000046|2020-06-05 08:28:28,9538625|+0,7580688|IRP_MJ_READ|UP|0x00000102|21 05 02 |!..|
00000048|2020-06-05 08:28:29,0958580|+0,1419719|IRP_MJ_READ|UP|0x00000102|20 05 02 | ..|

Just for completeness’ sake, here’s the full traffic when connecting the device from the sniffer itself and then pressing a few random buttons.

Do you remember what buttons you were pressing. I think the data there should match (20 and 21 are button press/release) - the numbers after should be x,y

What seems to be missing is the connection handshake. I wonder if some delay in the startup process might help?

Here I’m pressing the buttons on the USB port side in sequence:

00000036|2020-06-05 09:06:16,6228518|+10,4613142|IRP_MJ_READ|UP|0x00000102|21 0f 07 |!..|
00000038|2020-06-05 09:06:16,8490056|+0,2261098|IRP_MJ_READ|UP|0x00000102|20 0f 07 | ..|
00000040|2020-06-05 09:06:18,3063087|+1,4572825|IRP_MJ_READ|UP|0x00000102|21 0f 06 |!..|
00000042|2020-06-05 09:06:18,5052583|+0,1989223|IRP_MJ_READ|UP|0x00000102|20 0f 06 | ..|
00000044|2020-06-05 09:06:19,1785046|+0,6732137|IRP_MJ_READ|UP|0x00000102|21 0f 05 |!..|
00000046|2020-06-05 09:06:19,3765226|+0,1979789|IRP_MJ_READ|UP|0x00000102|20 0f 05 | ..|
00000048|2020-06-05 09:06:20,0225827|+0,6460431|IRP_MJ_READ|UP|0x00000102|21 0f 04 |!..|
00000050|2020-06-05 09:06:20,2496342|+0,2270175|IRP_MJ_READ|UP|0x00000102|20 0f 04 | ..|
00000052|2020-06-05 09:06:20,9449810|+0,6952480|IRP_MJ_READ|UP|0x00000102|21 0f 03 |!..|
00000054|2020-06-05 09:06:21,1720252|+0,2270142|IRP_MJ_READ|UP|0x00000102|20 0f 03 | ..|
00000056|2020-06-05 09:06:21,6771319|+0,5050822|IRP_MJ_READ|UP|0x00000102|21 0f 02 |!..|
00000058|2020-06-05 09:06:21,8481642|+0,1710054|IRP_MJ_READ|UP|0x00000102|20 0f 02 | ..|
00000060|2020-06-05 09:06:22,6883306|+0,8401339|IRP_MJ_READ|UP|0x00000102|21 0f 01 |!..|
00000062|2020-06-05 09:06:22,8873053|+0,1989498|IRP_MJ_READ|UP|0x00000102|20 0f 01 | ..|
00000064|2020-06-05 09:06:23,7285196|+0,8411796|IRP_MJ_READ|UP|0x00000102|21 0f 00 |!..|
00000066|2020-06-05 09:06:23,8986632|+0,1701165|IRP_MJ_READ|UP|0x00000102|20 0f 00 | ..|

Looks ok, right?

I can try adding a delay in the code directly, right? Where should I place it?
There’s a commented out delay on line 142 of the main .ino file - should I try that one? Or at the end of setup()?

By the way: You rock for being so responsive - Thanks a whole lot!

Looks right.
I’ll have to look at the code tomorrow to make suggestions.

If you could dm me a dump of everything you get when you plug in, that might be helpful (maybe plug/unplug a couple times)

Missed a notification and real life got in the way yesterday - sorry for the delay.

Here is a dump from connecting/disconnecting a couple of times. studio.exe is the capturing tool. Note that this was done while listening in on studio.exe “artificially” opening serial communication.

00000000	2020-06-07 09:39:18,8619390		PnP Event: Connect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000001	2020-06-07 09:39:45,1550581	+26,2931191	PnP Event: Disconnect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000002	2020-06-07 09:39:48,2957015	+3,1406434	PnP Event: Connect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000003	2020-06-07 09:39:49,3386964	+1,0429949	IRP_MJ_CREATE - process 8528 (studio.exe)	DOWN	0x00000000		
00000004	2020-06-07 09:39:49,3387462	+0,0000498	IRP_MJ_CREATE	UP	0x00000000		
00000007	2020-06-07 09:39:49,3388833	+0,0001265	IRP_MJ_CLOSE	DOWN	0x00000000		
00000008	2020-06-07 09:39:49,3390634	+0,0001801	IRP_MJ_CLOSE	UP	0x00000000		
00000009	2020-06-07 09:40:04,3229221	+14,9838587	PnP Event: Disconnect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000010	2020-06-07 09:40:09,1077359	+4,7848138	PnP Event: Connect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000011	2020-06-07 09:40:10,1337950	+1,0260591	IRP_MJ_CREATE - process 8528 (studio.exe)	DOWN	0x00000000		
00000012	2020-06-07 09:40:10,1338463	+0,0000513	IRP_MJ_CREATE	UP	0x00000000		
00000015	2020-06-07 09:40:10,1340017	+0,0001451	IRP_MJ_CLOSE	DOWN	0x00000000		
00000016	2020-06-07 09:40:10,1341002	+0,0000985	IRP_MJ_CLOSE	UP	0x00000000		
00000017	2020-06-07 09:40:46,3389171	+36,2048169	PnP Event: Disconnect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000018	2020-06-07 09:40:49,2397458	+2,9008287	PnP Event: Connect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000019	2020-06-07 09:40:50,2982572	+1,0585114	IRP_MJ_CREATE - process 8528 (studio.exe)	DOWN	0x00000000		
00000020	2020-06-07 09:40:50,2982984	+0,0000412	IRP_MJ_CREATE	UP	0x00000000		
00000023	2020-06-07 09:40:50,2985071	+0,0001992	IRP_MJ_CLOSE	DOWN	0x00000000		
00000024	2020-06-07 09:40:50,2991341	+0,0006270	IRP_MJ_CLOSE	UP	0x00000000		
00000025	2020-06-07 09:41:11,7470117	+21,4478776	PnP Event: Disconnect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000026	2020-06-07 09:41:16,1995147	+4,4525030	PnP Event: Connect	DOWN	0x00000000	5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 …	\.?.?.\.U.S.B.#.V.I.…
00000027	2020-06-07 09:41:17,2414674	+1,0419527	IRP_MJ_CREATE - process 8528 (studio.exe)	DOWN	0x00000000		
00000028	2020-06-07 09:41:17,2415182	+0,0000508	IRP_MJ_CREATE	UP	0x00000000		
00000031	2020-06-07 09:41:17,2416794	+0,0001498	IRP_MJ_CLOSE	DOWN	0x00000000		
00000032	2020-06-07 09:41:17,2421645	+0,0004851	IRP_MJ_CLOSE	UP	0x00000000		

If I don’t connect using studio.exe, it’s just:
00000000 2020-06-07 09:52:34,9652835 PnP Event: Connect DOWN 0x00000000 5c 00 3f 00 3f 00 5c 00 55 00 53 00 42 00 23 00 56 00 49 00 … \.?.?.\.U.S.B.#.V.I.…

Just FYI I added some delays here and there (e.g. after Serial.begin), so the timings might be different from what you’d expect. Still, same results.