This week I finally managed to get board-to-board communication working! There were a lot of issues along the way that delayed this progress, but as of 3/26 the dummy half-duplex system is fully working and ready to be migrated to the Jetson/Due bus. I began this process by trying to fully implement a modbus protocol using basic Max485 boards between two Arduino Unos. I discovered that one of these Unos had a hardware issue, so I tried swapping it out for the Due and logic level stepper. However, at the time I did not recognize that the logic stepper I was using had been incorrectly soldered, so I incorrectly attributed the non-functionality of the code to the Max485 boards. I then tried swapping the Max485 boards I was using for ones that claimed to be able to do on-board level stepping as well as automatic direction control. I was able to get this working, but unfortunately there seemed to be a deal-breaking issue with the auto-switching hardware that caused garbage bytes to be written every time the direction was changed.

This caused me to rethink my approach and return to the old Max485 boards. I rebuilt the hardware system from scratch, and individually tested each hardware component first to eliminate the possibility of issues. After discovering the hardware issue with the logic stepper I swapped it out for a properly soldered one, and began rewriting my software protocol from scratch. I set up the system with the end goal of having the Due retrieve incoming data from the IDE Serial Monitor, send that data to the Uno over RS485, and have the Uno echo that data back to the Due. After much testing I was finally able to get this work. I then moved on to having the Uno read incoming data from a potentiometer to simulate the acquisition of data from either CV code or our glove sensors. I was able to successfully request this data from the Serial Monitor. Finally, I wanted to make sure that high frequency requests would work and be stable. I programmed the Due to constantly ping the Uno for new potentiometer data, and after some fiddling was able to get this communication working exactly as intended!

Unfortunately I am still behind schedule, but now that this major hurdle is out of the way we can migrate this system to the Due/Jetson bus. We have built enough slack into the schedule that I’m not concerned, but I definitely need to pick up the pace this week to ensure we have time for integration tests if things go wrong.

This week I intend to both get the Due/Jetson bus working as well as finish a first pass at the Max Software Synthesizer.

A demonstration of the final dummy system test can be viewed below.

Harry’s Status Report for 3/26/22
Tagged on:

Leave a Reply

Your email address will not be published. Required fields are marked *