KJ Newman’s Status Report for 4/29/2023

  • Work this week
    • This week I worked on debugging the usb driver.  I located a document which specifies what the error codes that ftdi functions return mean.  I then added a lot of debugging code to print these codes in human readable form anytime there is any error.  It seems that some fpga code changes have mostly gotten rid of errors while operating.  However, setting baud rates above 7 Mbps still has issues.  I printed the error code when this happens, and it is FT_IO_ERROR, which is ill documented.  I believe that some baud rates cannot be achieved with the clock dividers on the chip.  However, these are not documented anywhere.  Therefore, we are likely to stick to 7 Mbps.
    • I worked on our poster this week.  Anju had already started the poster but it was difficult to edit, so I made a new copy and copied all information over.  I also spent a while trying to make sure the text in images would not need to be rescaled because that was making it blurry and poor quality.  The poster is pretty much done now.  As a team, we will look at it together.
  • Schedule
    • We are on schedule.  I only have work on the report, poster, and video remaining.  We also need to do the system stress test.
  • Deliverables
    • Next week, I will be finishing up on the poster and working on the report.  I will also run the full system stress test.

KJ Newman’s Status Report for 4/22/2023

  • Work this week
    • This week I spent a lot of time working on software.  The code was not complete for integration, so I both debugged and added features to get it to the point where it could be tested along with the rest of the project.  This included splitting up and reconstructing files, fixing the way boards are identified to use individual names (Black and White, to match their 3d printed parts), increasing usb speed, and much more.  The software is now in a state where it works and it can deal with packets with errors, but if there are errors in protocol packets that do not contain any file data, it sometimes fails.
    • I worked on integration a lot this week.  Early in the week, I fully integrated hardware and FPGA firmware with Anju, and demonstrated transmitting data at various speeds at various distances between two boards.  This fulfilled our testing for hardware for the most part, and it worked very fast!
    • During integration, I discovered that when a large number of 1’s are send consecutively, the ambient light filtering loop kicks in and thinks it is ambient light, since the parts we use are designed for laser rangefinders, not communications.  To fix this for now, we have disabled ambient light filtering, and the system works.  However, we are testing a new way of encoding data where the first half of a bit is data and the second half is 0 to prevent this from happening.  This may allow us to keep the light filtering on.  I have found experimentally that ambient light filtering is not necessary in most cases, since the board is not facing high intensity green light.  Based on preliminary testing, this approach works very well!  It limits our speed to 4.167 Mbaud over lasers, but it has zero errors!
    • I finished our slides this week, which includes having data for most of our tests, and a video demonstrating that we can send files!
  • Schedule
    • We are still working on integration.  The whole system is now together, and we are working on debugging issues for the next week or two until the demo.
  • Deliverables
    • Next week, I will continue working on integration and fixing issues.  I will work with Anju to finally select whether we will turn off ambient light filtering or change data encoding to allow filtering to stay.  I will also work with Roger on debugging the usb driver, since it fails when reading sometimes, preventing us from transmitting large files.

KJ Newman’s Status Report for 4/8/2023

  • Work this week
    • This week I finished our second 3d printed housing.  I cut more lenses housings and 3d printed the part to attach to the PCB, and assembled and tested everything.  This housing works as well as the first, so mechanical work on the boards is done.
    • I discovered that the “low” power setting on one board is pretty high.  This seems to be causing some inconsistency in communications, as the receiver cannot always tell it is supposed to be low.
    • I worked with Anju and Roger to integrate the whole communication pipeline together.  We both ran tests using a mirror to reflect data back to a board and using both boards.  Reflecting data back worked well, but using both boards was difficult for some reason.  I am continuing to debug why.  We did this sending raw bytes, not data encoded in our actual format.
  • Schedule
    • We are still working on integration.  The comms pipeline has been integrated in its entirety, but it appears buggy, so there is still work to be done.  Once that is complete, we will move on to testing.
  • Deliverables
    • Next week, I will fix the laser on one board to have a lower “low” power setting to make communications more reliable.  I will also continue work on integration with Anju, and will make a test setup to hold the boards stable for easy testing.  I also plan on disabling the IR laser to prevent accidents, since we are not using it at all.
  • V&V/Testing
    • Have run:
      • I have used an oscilloscope to measure the rise and fall times of the signal powering on the lasers to ensure it is sufficiently fast for 6.25 Mbaud communication, which it is.
      • We have run a communication test at 6.25 Mbaud through the lasers, with USB and FTDI interface running quite a bit faster, to demonstrate that the hardware can support communication at our required speed.  Because we have one laser, not two, this requirement has doubled to 5.42 Mbaud, so we made sure to test above that speed.
      • I have done some hand testing with optical angular error.  It appears that this error must be significantly smaller than we were hoping for and set as our requirement.  I plan to do further work testing this once I have a test stand setup that makes it easier to hold the boards stable, and document more precisely what is required.
      • I have measured the current draw of our device and made sure that it draws below the USB-C spec of 3A when powered on 9V USB PD.
      • I have tested the board in a variety of lighting conditions (light, dark, different rooms, natural vs artificial) with ambient light filtering on and it consistently performs the same.  This verifies that it will work regardless of ambient light conditions.
    • Plan to run:
      • Measure the received data on digital line to FPGA when receiving 6.25 Mbaud data to ensure it is clean, and rise and fall times meet our spec.  Just because it appears to work does not mean this signal is clean.
      • Run a test of the full system with the full software stack running and verify speed meets our requirements.
      • Run a system stress test transmitting a large file while intermittently blocking the laser and verifying it still gets transmitted.
      • Test the boards at a distance of 1m to ensure data can be transmitted at that distance.

KJ Newman’s Status Report for 4/1/2023

  • Work this week
    • This week I debugged several more issues with our PCB.  I continued work on the comparator issue.  I tested our two new comparators, but they did not work.  In fact, they worked worse.  I discovered several things.  One is that the comparator overdrive ranges are all specced far better than reality.    The other is that this was not the actual issue.  The real problem is that our charge pumps create a huge amount of noise.  They do not create noise on their outputs.  However, the radiated emissions from them induces current in the traces to the photodiodes.  Because we measure current on order of magnitude of microamps, this noise is far greater than our signal.  To fix this, the charge pumps should be far away from receivers, with long traces carrying the reference voltage over.  However, this cannot be fixed without a new board spin.  In the end, I fixed this by only using only the green photodiode photodiode, and the charge pump for the IR photodiode plus a voltage divider to get the correct reference voltage.  The reason for only using green is explained in the next bullet.  Because the photodiode only draws microamps, a voltage divider creates a sufficiently stable voltage.  Because the charge pump is far away on the board, it does not radiate emissions into the signal line.
    • I discovered that our infrared laser will not work.  The laser only creates a 1 mV signal when turned on directly in front of the receiver.  I figure that the receiver’s datasheet showing the optical wavelength response is likely inaccurate, since it shows a graph of a full spectrum, and it is unlikely the manufacturer was able to actually measure this, and we are using a laser below the peak wavelength of the photodiode.  This is not fixable without redesign or buying a large number more parts to find compatible ones.  This, combined with the aforementioned charge pump issue, led me to make the call to remove IR.  The green laser functions, and we do not have the budget or time to fix IR, since the components are incompatible.
    • I found a solution to our USB power problem.  I got usb power/data splitters designed for raspberry pis and modified them for our use.  They allow us to combine a 9V3A usb pd supply and a usb 2.0 data wire into a single usb C wire.  I made 2 of these boards and verified that both power and data work.
    • I spend a lot of time finding correct resistor values to change precise settings and thresholds for both boards.  The current state is that both use green lasers set to 5 mW, and both green receivers are set to correct thresholds.
    • I 3d printed and tested our lens mounts.  They fit and the lenses allow us to focus the lasers.  Additionally, since I included the threaded metal piece, the mounts allow us to focus and unfocus the lasers on the fly.  This was done by using a belt sander to file them down to be small enough to fit on the board over both lasers and with good focus.
    • I ran a quick test with Anju to see if the laser and fpga work together.  They do!  On the first try, we were able to send data at 6.25 Mbaud using the laser and receiver.  This bodes well for us, particularly since this was done with me holding a mirror by hand in front of the laser, making for a bad signal.
    • Image of board now:
  • Schedule
    • Integration is still behind schedule.  Now that hardware seems to be done, this is my number one priority.  Since the preliminary test with Anju worked well, and Roger is able to communicate over USB, this seems mostly done.  However, we cannot be sure bugs do not remain.
  • Deliverables
    • Next week, I will finish our second 3d printed housing test.  I finished the housing, but I have not assembled and tested it.  I also need to use the belt sander to cut the metal pieces down to size.

KJ Newman’s Status Report for 3/25/2023

  • Work this week
    • This week I debugged several issues with our PCB.  One of these is that the receivers do not work.  This is because our comparators are not behaving as specced.  They are specified as low as 20 mV overdrive with no minimum spec, but we experimentally found that they only work starting at 50 mV overdrive.  Our TIAs do not create a large enough voltage swing for this, so they do not output digital values.  To fix this, I ordered 2 new comparators that have several specs well below this, as low as 5 mV overdrive.  They still do not have a minimum spec but appear to be better.  I also made sure to get chips from different manufacturers in case this is a manufacturer issue.  These will arrive next week for testing.
    • Another board issue detected this week was laser power.  The lasers have visibly inconsistent power output, mostly weaker than expected.  I did some experiments and determined that this is because the threshold voltage of our laser diodes is not consistent.  To fix this, I connected lasers to external power and used experimental and datasheet values combined to calculate the feedback current that equals our expected optical powers, 2.5 mW and 0.5 mW.  I then tested how much input current would create that feedback current for individual lasers.  I did this for both lasers on one board and replaced the resistors to equal this power, which makes the board now have the correct power.  I now know each laser needs this calibration individually, so will need to do it on the other board too.
    • Another issue detected this week was power related.  I managed to program the FTDI chip on one board to the correct communication and power settings, but I discovered that the board only successfully draws 9V from a laptop charger, not from my laptop.  This is despite Apple customer support explicitly stating that this would work.  It seems Macs do not support being a USB PD source above 5V.  To fix this, we will need to splice wires or find some device capable of high voltage USB PD and data combined.
    • I also received new USB connectors this week, and attached one to our second board.  This was much faster and easier than the first, since I had to figure out a method the first time.  This time, it worked on the first try with no damage to anything.
    • I tested various methods to see what the best way to test a single board is, since we need both a transmitter and receiver to test anything.  The best method I found was using a small reflective piece of metal to reflect the unfocused laser back towards the receiver on the same board.  This is strong enough to trigger the photodiode and TIA, so this is how I have been testing the receiver.
  • Schedule
    • Due to the specified board issues, I did not 3d print our lens housing this week.  This will be pushed once again to next week.  I have made a plan for exactly what shape needs to be made, but do not have CAD for it yet.
  • Deliverables
    • Next week, I plan to deliver at least one housing for the lens.  However, the important deliverables are fixing the circuits.  I plan to have fixed the laser power on the second board and have fixed the receivers to properly output digital signals using one of the new comparators.  Additionally, I want to have settled on a solution for the USB power, even if it is not implemented yet.

KJ Newman’s Status Report for 3/18/2023

  • Work this week
    • This week, I assembled two of our PCBs.  We did not receive a stencil from JLCPCB, so this took quite a while.  The boards assembled as expected with only one exception, the USB connector.  The connector requires a board cutout underneath it and the board does not have one, so it took a lot of time to get the connector to fit.  Ultimately, I figured out a way to bend the pins and use hot air soldering to get the connector on, but destroyed our 2 other connectors in the process.  However, it did work on one board, so we ordered some more connectors to put on the second PCB using the same process.  This ultimately will not slow us down much or cost much.  The board is shown here:
    • I also tested the PCBs.  The transmission and power circuits work as expected, and the receiver circuits are difficult to test without FPGA software, so I began working with Anju on integrating the FPGA board and the custom board.  Transmitting works integrated with the FPGA, and receiving testing is ongoing.  All voltages on the board are correct, and laser driving at two different power levels works with sufficient rise and fall time to transmit at our speeds as shown:
    • I verified how the lenses fit over our board and that they properly focus both lasers.  I also found that iPhone cameras can indeed see our IR laser, but not very well
    • I ordered some additional parts this week.  I ordered and received 3d printer filament.  I also ordered new usb connectors as we ran out.
  • Schedule
    • My work is mostly on schedule.  I managed to assemble and test pcbs despite not having the stencil.  However, this meant that 3d printing our housing fell behind schedule, and I now plan on doing this next week.
  • Deliverables
    • For next week, I plan to design our 3d printed housing for the lenses and print it.  I also plan on continuing integration of the receiver with Anju and giving a board to Roger for him to integrate USB code and EEPROM settings onto.

KJ Newman’s Status Report for 3/11/2023

  • Work this week
    • This week, I completed our PCB design.  I did our layout and it passed all DFM checks.  It is currently in fabrication at JLCPCB and expected to arrive before class resumes after winter break.
    • I ordered all parts to make our PCB.  Our only expected expense that has not been purchased yet is 3d printer filament.  This has 1 day shipping so can be purchased later.  Setting up our part orders was a bit complex because I wanted to order with bulk discounts where possible and buy extra components in case we need them, but we are running a little close to the $600 budget.  I ultimately ordered enough active components for 3 boards and numbers of resistors and capacitors to get bulk discounts.
    • I wrote my parts of the design report.  This was a lot of work to do in parallel with finishing and ordering the PCB, but we managed to finish it.
  • Schedule
    • My parts are on schedule.  I planned on having the pcb ordered before spring break and set to arrive after spring break, and it should be here by then.
  • Deliverables
    • For next week, I plan to have 2 PCBs fully assembled and ready for use.  This should be achievable, since all of our parts will have arrived before the beginning of the week.

KJ Newman’s Status Report for 2/25/2023

  • Work this week
    • This week, I completed the schematic for our custom PCB.  This included adding as many backup plans to the board as possible so it will still work even if I made some mistakes and some parts do not work as expected.  I also had the schematic reviewed by both of my teammates and several other people to verify that I did not make any mistakes.  This included doing calculations to ensure that the board will meet all timing requirements and finding an example board using our FTDI chip, since it is fairly complicated.
    • I completed our budget this week.  This included specifying the exact BOM of the board, as well as figuring out how much extra of each part to order, and how best to acquire passive components.  We are buying all parts we need, and purchasing as much as we can on multiples of 10 and 100 to get discounts.  This means that our order of passives costs $0.01 more than buying enough for 2 boards, and it has over 100 more extra parts.  The budget also includes all of our prototyping parts, 3d printing, shipping, a stencil, and everything else we will spend on.  We will have $80 left over for anything that comes up later.
  • Schedule
    • My work is on schedule.  I wanted to complete the schematic this week, and I had it done early in the week.  We also tested the lens this week, which is ahead of schedule.  I am confident we will be able to order parts and the PCB before Spring break, as I have a week for layout.
  • Deliverables
    • I hope to complete our layout for our pcb in the next week.  This way we can order it next week and have it in hand when we return from Spring break.

KJ Newman’s Status Report for 2/18/2023

  • Work this week
    • I spent this week designing our pcb and selecting every active component.  This took a very long time because our application is very niche, so few parts exist that meet all of our requirements, and we need to have all the pieces fit together.  This led to changing the design many times and reading datasheets for practically every part available for the some components, like laser diodes, photodiodes, and transimpedance amplifiers.  This resulted in a now complete architecture and component selection that just needs to be filled in with passive component values to create a complete schematic.  We do not expect to need to purchase passive components, as we have access to them from labs.
    • I worked with Anju and Roger to design our communication protocol.  They were in charge of this, but I expressed some opinions and made sure their design is compatible with my PCB design.
    • I also worked with Anju and Roger to pick which FTDI chip to use for USB, since they have software requirements as well as the hardware requirements of the subsystem.  After switching between many options, we finally settled on one.
    • I completed a budget for us.  I ordered laser lenses for testing and factored in pcb fabrication and 3d printing cost to find how much our current plan will cost.  We will have about $50 of buffer to handle anything we need to buy later on.  This could go up with more selective buying extra parts than just buying 4 BOMs.
    • I tested the green laser diode to verify it works exactly as expected, and it does.  I also tested the other components we bought early for testing, and found that none of them do what we want.  This is very valuable because through this, I have learned how the optical components work and how they must be used in designs, so our final design will be well informed.
  • Schedule
    • My work is on schedule.  I wanted to test parts this week, which I was able to do last week.  This week, I got ahead on creating a complete design of the PCB and selected every part, which should make me continue to be a bit ahead next week, when I am expecting to create a complete schematic.  While I do not have the schematic yet, I have a complete enough design that the schematic will be pretty quick.
  • Deliverables
    • I hope to complete our schematic for our pcb in the next week.  I also hope to test our newly purchased lenses with Anju when they arrive to make sure we will be able to use them.
  • Principles Used This Week
    • Circuits:
      • I used principles from 18220: Electronic Devices and Analog Circuits for designing our circuits.  However, most of the knowledge I have about circuits comes from my work outside regular classes working on Moonranger, a lunar rover research project (16861: Space Robotics, 16865: Space Robotics Development, 16597: Robotics Reading and Research).  I also have learned principles of analog design from prior internships.
    • Protocol Design:
      • I used some principles from 18240: Structure and Design of Digital Systems and 18349: Introduction to Embedded Systems to help with designing the protocol this week, as I used FPGA knowledge and knowledge of existing protocols used in embedded systems.  My knowledge that helped with this also comes primarily from research outside class as well, as I have written a lot of embedded code for research and for internships.
    • Optics:
      • I have no familiarity with optics and optical circuits.  I learned about optical circuits, how they work, and common designs through a lot of online research reading datasheets, reference designs, and guides on creating various optical circuits and communication systems.  I mostly learned from fiber optic and time-of-flight laser system designs.

KJ Newman’s Status Report for 2/11/2023

  • Work this week
    • Select processor for laser board
      • I worked with Anju on picking an FPGA and finding a development board to get her started on writing Verilog before the final PCB is designed and assembled.  I looked at some microcontrollers as potential options since she could not find an fpga for us to put on a custom board, and worked with her to determine how to test if using an FPGA dev board will be fast enough.
    • I specced and ordered lasers and photodiodes to evaluate their performance with high frequency modulation to make sure they are fast enough for our needs.  We are ordering a green laser and blue photodiode, and an IR laser and photodiode.  The photodiodes have poor performance at the wavelengths of the other laser, since green and IR are far apart.  This way, we do not need to do any filtering ourselves to pick out each color laser.
    • I began considering fiber optic laser drivers for use for driving our free space lasers.  They do not meet our design requirements, so I began making a schematic to see if one could still be used with modification to manufacturer recommended support circuitry.  It ended up having a lot of potential problems, so we probably will not go this route, and will use discrete circuits to drive the laser.  Between doing calculations for component values on my own and TI’s responses to my questions about their drivers, it seems that it might not work once we have the final boards in hand, which is too big a risk for us to take.
    • I began designing a circuit to drive the laser with discrete components.  This is probably what we will end up using.
  • Schedule
    • My work is on schedule.  I wanted to buy the lasers and photodiodes this week to test their performance at high frequency, which I did.  I got a bit further into schematic work this week than I expected as well.
    • The lack of FPGA chips available means that we have not selected a processor yet, which could put us behind schedule soon.  Our fallback plan is to use an MSP430, because Anju and I are familiar with the software and I am familiar with hardware and confident I can make a board with one quickly.
  • Deliverables
    • In the next week, I hope to have a complete schematic of the transmitter, and an idea of some part selection for the receiver.  I also hope to have come to a decision with Anju about what our processor will be, and a plan with Roger about how to verify that the board will work at our speed.