Table of Contents

Research Log

Fall 2016


Building Another Monitor


7 Dec 2016

There's a 14 kHz ripple coming out of the power transistor. It might just be from the +24V block. Drew doesn't think that that's likely to be the problem, but we can try getting rid of it. I'm putting an LC notch filter on the +V line of the 24V Supply Block, using a 25 uF Cap. and a 5 uH Inductor from the shop.

OK, the filter didn't help, because the ripple isn't from the power supply. Here's the scope view with a power resistor going from scope to ground (totally flat):

Apparently, the ripple has something to do with the motor assembly, because with it disconnected, it's not there. Here's just a resistive load across the motor's POLY_MTR and GND lines(totally flat, again):
I don't get where the feedback ripple is coming from, but I'm inclined to think it isn't our problem. I wish I knew what the PLL output looked like on the MIT monitor for comparison's sake.


6 Dec 2016

Got those holes all added. Some have been removed/edited in order to keep as many of the hex nuts in place as possible


5 Dec 2016

Cut the 1/8“ parts, so the next chassis is pretty much done:
Started editing the optics deck CAD files to add the holes for the fan, cables, and screws.


2 Dec 2016

Showed Dallin how to use the Laser Cutter, cut the 1/4” chassis parts, and created the panel file for the 1/8“ parts. The panel files are in: ~Monitor Development\Chassis Parts New Acrylic Monitor\CorelDraw Cut Files\. They're all in .cdr format (CorelDraw) for the ME Laser Cutter.
Here's a bitmap of the final 1/8th inch panel:

After arranging the parts, the overlapping lines had to be removed to prevent the cutter from lasering thorugh them twice (saves time and prevents over melting the edges). The cartridge alignment tool has also been deconstructed to save space on the acrylic sheet. The two sticks fit into either of the larger pieces to form the original plate.


30 Nov 2016

I tried a couple more ideas on the rogue PLL, but still no avail. I got it to lock once last week, but only for a few seconds before the PLL pulled the motor speed down again. I'll try putting the attenuator back in.
In other news, Drew and I laser cut the new back plate we'll need for the monitor. looks like it fits nicely!


28 Nov 2016

I fixed the CAD problems on the Scanner Shield. Most were just mistakes on my part in using SolidWorks. Afterwards, I Learned stencil soldering with Drew and made a HELA-10 Board.


23 Nov 2016

I finished the CAD (in theory) on the new power deck backplate, and cut a cardboard prototype on the ME laser cutter:






The Power Inlet hole is great!
The hole is sized just perfectly so that the inlet will have good friction with the acrylic when it's snapped into place.
20161123_backplate_proto1_scanshield.jpg




The Scanner Shield holes are a different matter:
The sizes seem OK, but the relative position isn't quite right. That'll need some re-working and another prototype before we go for the acrylic.


22 Nov 2016

Drew trained me on the larger Laser Cutter today. We ended up having to tweak some of the calibration settings to fix the scaling on the table's x-axis. I also worked on some of the CAD edits for the chassis.


17 Nov 2016

The COM ports weren't working right today, so I restarted the supercomputer and voila! the HSYNC pulses work just fine, even with my DVI board. Apparently Windows really was being weird yesterday. Now, the PLL is going rogue. When the periods/frequencies of the two start to get close enough to lock, the PLL starts killing the motor power…a LOT.

So, for now the Scanner Shield controls the motor, but still can't lock. Without the PLL we can't do it by hand. With it, right now, the motor power gets cut too far and then we have to fight it to keep the motor speed high enough.


16 Nov 2016

Windows is finally recognizing the new Scanner Shield and DVI Breakout as a monitor, but it keeps turning the HSYNC and VSYNC off. Using a different DVI board I've gotten VSYNC to consistently work, but HSYNC still never stays on for more than a second (it shuts off when Windows is done “installing” the monitor). Still needs work, but I'm running short on ideas right now.


11 Nov 2016

Pulse stretcher is now fixed by decreasing the capacitor (.1uF→1nF) and increasing the resistor (to keep around the same tau: 75ohm→10kOhm). Pulse stretcher works (pulse width is around 5.45us) and the Arduino can read the period between pulses. Now, we need to test the DVI breakout so we can then do auto-locking tests with this shield.


10 Nov 2016

I was measuring the first amplifier's output wrong. It's still weird, though. The output is +3V–2V instead of +5V-0V. Found the problem and fixed it: somehow no matter how careful I was, it turns out I STILL swapped R14 and R30. Now we can run the motor from this board!

New Problem: the pulse stretcher isn't quite working right. The capacitor never discharges enough to trigger the second inverter. Here's the O-Scope view between the two inverters. Notice the scale difference (Yellow is on TACH_RAW):

We need to get below 3V for the inverter to consider it a low signal.


9 Nov 2016

I started testing the new Scanner Shield. The motor starts up OK, but isn't reaching a high enough speed. Currently the POLY_TACH frequency is maxing out at 1.136 kHz. For reference, the DSYNC pulse is usually around 1.5 kHz, so this is way too low. It also puts the motor in a voltage range where it tends to draw a LOT of current in order to keep moving.

The problem seems to be the anplifier circuit between the DAC and the Power Transistor. Right now the transistor base is getting 4.14-12.39V whereas it should be ~9-17V. The first OpAmp's output (If I was measuring it right) should be 5V-0V (it's inverted), but right now it's 1.4V-0V. I'll take a closer look tomorrow.


3 Nov 2016

I've got fairly decent ideas set for dividing up the chassis parts.

I also started on soldering the DVI breakout board. So far just the EEPROM until I can find out which capacitor is which.


2 Nov 2016

I got the Jumper Shunts we needed from the Shop and installed them. We should be able to test the Scanner Shield with the Arduino now.

Also, I started working on nesting the chassis parts trying to optimize the number of acrylic sheets we need.


28 Oct 2016

The Scanner Shield is DONE! Now we just need to test it to see if it works.

In other news, we got started on the parts list, but didn't get too far. Here's the page-in-progress: Mark V Parts List


24 Oct 2016

The new Scanner Shield is almost ready for testing, just need to install the Power Transistor and put the small pots in their headers.


19 Oct 2016

Continued soldering, this time using and SMD station in the shop. Much easier and MUCH faster for populating the CCA.


18 Oct 2016

Drew gave me a run down on Surface Mount Soldering, got me started populating a second Scanner Shield.


Polygon Sync


15 Oct 2016

Using Drew's measurements for phase shift and period of both signals, wrote a preliminary version of the 3 stage state machine. The machine starts in stage 1 on keypress of 'm'.

  1. enables motor at full power, waits for 4 seconds before moving on to Stage 2
  2. relies on period difference. rough adjustments (intervals of +/- 20) until within a particular tolerance (DSYNC_period/a power of 2). Once holding within tolerance for 4 cycles, moves on to Stage 3.
  3. Finds differential of phase shift (“roll direction”), makes fine adjustments (+/- 1) based on that. If the period difference gets out of the tolerance, returns to Stage 2 for rough adjustment.

14 Oct 2016

I think I found out why DSYNC isn't measuring correctly using my polling algortihm. This is what the arduino is getting on Pin2:

I may have to change methods to measure this. I'm worried that triggering this with interrupts will start having interrupts interrupting each other. This does explain why most of the values end up at about half period. The period it's getting is only half of what we're expecting. The occasion where it works right is probably just the polling function missing the drop.


13 Oct 2016

Found out that the data registers for the input pins and the outputs of the same pin are separate (PIN# vs PORT#). Still not getting reasonable measurements, though.

the PTACH measurements were working great, even smoother using Drew's manually implemented interrupts. try measuring period using interrupts for DSYNC too.


11 Oct 2016

When doing manual port access: can use bitRead(val, bit#); to get individual bits (say, to but them into a bool). If all we need to do is read for changes, however, then it really won't matter.

→from Dallin: pulseIn() → reads a pulse width value. will it help?

Wrote preliminary versions of getPhaseDiff() and getRollAmt() (measures rolling).


10 Oct 2016

Polygon motor Locking range speed: 3200s (3215)

Goals:

Manually Poll ports for changes. Interrupt overhead is too high