RMResearch / OpenMPD_Hardware

5 stars 2 forks source link

FPGA issues and Unity crashing - thank you for the support! #2

Open Sjk023 opened 6 months ago

Sjk023 commented 6 months ago

Hi! I'm having a lot of fun putting together these boards and excited to perform all sorts of fun testing. Excuse my ignorance as I'm an FPGA novice, but I had a few clarifying questions I was hoping you could help with! 

FPGA: I wanted to confirm that the FPGA folder in the OpenMPD Hardware repo is everything I need to flash the board? Is there any sort of reference I can compare to for default behavior when a single board is first turned on? Are there simulations that can be run in quartus or any other suggested tools? 

When I have a single board hooked up (see picture for connections & setup), with only the default FPGA flashed, the power supply pulls .75 amps at 18 Volts - is this the expected amount? Most transducers seem to exhibit the requested 40kHz wave, albeit perhaps a bit weaker then they should be.

I made sure to connect/jump JP1, JP2 as well as connecting 5V and Reg with solder under the USB Bridge - is connecting 5V and REG the recommended setup?

I noticed a few finicky behaviors when connecting a single board: 1) If I connect the USB-C to my laptop, and then turn on the power supply, the board at first draws ~1.1amps and powers all transducers, and then shuts down to only drawing about 0.1amps and transducers turn off after about 1 second of operation and it stays at 0.1amps.  2) If I instead connect the power supply first, The board starts by first going to ~1.1 amps, then after a second to 0.1 amps, and then after another second back up to around .85 amps and settles there. And then I plug in USB-C and it goes to about 0.75 amps and keeps all transducers on exhibiting the 40kHz wave. All of this was operated at 18 Volts. 

In both cases, this seems like strange behavior. What is the correct order and expected behavior? 

Unity errors: I similarly had an issue discussed previously in the forum, where my Unity client crashes every time I connect it to the correct board ID. So, as suggested, I am trying to use the C++ client examples instead. When I run any of the example C++ programs, and it asks for an input (i.e. to change trap location or haptics, etc.), when I input a keystroke, the CMD either does not ever update, or takes ~100 seconds to update. Is this normal? Is there a way to speed this up? How can I confirm the signals are being sent to the board? 

Thanks in advance for all your help!  IMG_7763 IMG_7762

Sjk023 commented 6 months ago

image000000 close up of the controller board