Status Report 05-04 (zbp)

Things I’ve accomplished this week

    • Robustness testing, extensive range testing at the track Saturday
    • TOM rev. 2, MCU board #1 assembled, not working in time for demo as of Sunday Night — MCU does not program despite all connections seeming to be solid electrically, and I’m pretty sure it was not thermally shocked during rework šŸ™
      • Rework / assembly / post-mortem pending further review
    • Enclosure finished for use at the track

Deliverables for next week:

  • Continue work on CAN bootloader, more track testing
  • Final status of Rev. 2

Updates on schedule:

  • Schedule has been updated for final report

Status Report 04-27 (zbp)

Things I’ve accomplished this week

  • TOM rev. 2 (final) ordered, arriving Monday
    • $70 in budget remaining
  • CAN Bootloader progress
    • ‘Made the Jump:’ Relocated code to a different flash sector, called from standard user code
    • Included lots of hacky debugging, like moving the vector table around and debugging assembly
    • Turns out branching in ARM thumb mode needs to see lsb = 1, who knew
    • Wrote a script to convert a binary file into a TOM-parseable UART stream for CAN transmission
  • Helped Cameron and Stan debug a UART/DMA issue
  • Fleshed out binary transmission protocol: Use 0-255 message chunks of 7 bytes each, with each chunk headed by a message containing the start address and length in bytes of its payload
  • Things still to fix:
    • Need to poke around more with the different flash sectors, some don’t seem to program despite the flash utility reporting them as writeable
    • Need to figure out why CAN hardware is inactive after jumping to bootloader code

Deliverables for next week:

  • Manufactured rev. 2 hardware, prepped for final demo, report mostly finalized
  • More progress on the CAN bootloader (bonus work, outside the literal scope of the project)

Updates on schedule:

  • Slack has been eaten into, crunch time is here, but assuming the 2nd revision works readily enough we’ll be fine

Status Report 04-20 (zbp)

What I’ve accomplished this week:

  • Got rev. 2 ordered at long last
    • Included migrating CAN interface pins, double checking connector interface, sourcing appropriate ribbon cables, adding a Link OK LED, etc.
  • Begun work on the CAN bootloader
    • Working prototype sees another STM32 controller blasting out a long string of binary data, with flow numbers for each packet to verify they’re arriving in sequence
    • Bootloader accumulates this data, verifying that a) messages are received in the correct order and b) that the CRC matches
      • CRC seems to only work on the sending side (hardware can’t be enabled on the receiver), but as the receiving side is an 413ZH dev board controller at the moment I’m not too concerned
    • If messages are received out of sequence, there is a timeout, the CRC fails, the received binary is too large, or there is an internal error, the bootloader aborts and hard resets the microcontroller
    • Some TODO’s here:
      • Make the bootloader actually flash the received code
      • Expose an interface for writing non-contiguous data: The .elf’s are 200+KB, which is getting close to our memory limit, whereas the binaries themselves are only 20+KB, so this saves time and space at the cost of a bit of implementation complexity
      • Migrate the bootloader code to a specific page in flash that won’t get overwritten by flashing new code
      • Allow non-contiguous messages within one ‘wrap’ of the 1 byte sequence. My first idea here was to just tag each possible sequence number (256), and error if any number in the run is received twice before the sequence wraps around. This erroneously errors when the last message in the sequence is reordered though, so I think a better approach would be to split the transfer into multiple chunks, with a header message carrying a different ID for the chunk’s address
      • Require the sender to confirm the total bytes sent via a handshake (currently just a one-way ACK back)

Deliverables for next week:

  • Prototypical bootloader or some variant thereof: In particular, the ability to flash an MCU over CAN with respect to a blind byte stream.
  • A sketch of a more robust communication protocol, or implementation hints for one.
  • Status on rev. 2’s fabrication/delivery (won’t be manufactured until end of April most likely, but we have the BOM and PCB’s for another rev. 1 just in case)

Updates on last week’s deliverables:

  • Email sent to Quinn ordering TOM rev. 2. Will follow up with him during the work week to further coordinate that expenditure.
  • UART testing proved succesful, and we’re able to stream CAN->UART thanks to Stan’s hard work in particular. Next up will be two-way transmission over that link.

Status Report 04-13 (zbp)

My accomplishments this week:

    • Got the rev. 1 prototype securely mounted in 19e, tested at pittrace, confirmed to maintain message timing on 2.4GHz at sub 150m ranges (using the 19dbi parabolic antenna mounted on a tripod)
    • Me on the roof of Stan’s car with our slightly ridiculous setup in the background, before it blew over in the wind (photo credit to Cindy Deng)
    • Settled on a design for the off-vehicle TOM enclosure (with the help of Aidan Honnold of CMR)

My personal deliverables for next week:

  • I really need to get this board ordered, I’m pretty garbage at this point. Let’s say by Wednesday I’ll have it ordered
  • Status on UART/firewall testing on Rev. 1 (ft. Stan and Cameron)

Updates on last week’s deliverables:

  • I didn’t post last week because 19e needed extensive work until Wednesday night, hoping to get back into the swing of things now

Team Status Report 4-13

Risks

  • Major risks have been assuaged: weird connection dropping behavior determined to be the effect of a bug in our CMR-teamwide CAN interface, so with that fixed, the only notable source of packet loss seems to be RF-related
  • Rev. 2 is late at this point, realistically no time for a third revision (mitigated by the fact that rev. 1 meets our M.V.P. pending some firmware updates)
  • Range testing continues
    • Successful tests at pittrace under 150m proved promising but still not fully conclusive, further testing will rely on larger track areas on some of their other tarmacs in the coming weeks

Design changes

  • None

Updated schedule

  • PCB rev. is late at this point because Zach is bad, but that will be biting into the slack we provisioned in our Gantt chart

Status Report 03-30 (zbp)

My accomplishments this week:

    • Worked on updating Revision 1 for ordering by Monday
    • Tested CAN bridging with Stan (confirmed working, some latent problems such as intermittent connection stalls)
    • Helped Stan debug garbage coming over-the-air (ended up being a misreading of the encoder interface)
    • Screenshots of layup pending final version

Note: Next week I will largely be waiting for the revision 2 boards to come in, which means I’ll spend the back half of the week playing around with Stan with UDP, possibly doing range testing in a few other radio configurations.

My personal deliverables for next week:

  • Status on having ordered BOM and gerbers by Monday

Updates on last week’s deliverables:

  • Revision 2 nearly orderable, just have to finish routing the replaced connectors (also need to investigate why PCBway is reporting the existence of a 5mil neck somewhere in my pours)
  • Settled on single breakout for UART lines @ 100mil pitch

Status Report 03-23 (zbp)

My accomplishments this week:

    • Revision 1. jointly reflowed with Stan
    • Relevant PR’s reviewed and merged for SPI transmission, heatshrink interface
    • Got Cameron up-to-speed on testing his code on our toolchain (previously just running tests standalone)
    • Reworded Rev. 1, tested, electrically solid
    • Made a list of changes for Rev. 2 (will actually need to happen now, I definitely frigged some things up)
      • Change both ribbons to slide connectors
      • Shorten header to make sure it clears
      • Order shorter ribbon (canā€™t cut to length, Iā€™m dumb)
      • Improve pitching on breakout pins (embiggen)
      • Remove/move poorly placed designators
      • Fix 0201 Caps in BOM
      • Add connector, headers to BOM
      • Expand transceiver board ground pour to mounting hole
      • Consider moving power delivery off ribbon
      • Move resistor
      • Add reset caps to gnd
      • Move connector back from the lip if possible
      • Renumber designators across boards

My personal deliverables for next week:

  • A revised Rev. 1 (Rev. 2)
  • Rev. 2 ordered by end-of-week
  • Investigation into board mount/spacers/enclosure

Updates on last week’s deliverables:

  • I’ve reviewed a decent chunk of the codebase, but I still need to get more intimately involved with Cameron’s interfaces and the UART driver
  • See above for board status

Status Report 03-09 (zbp)

My accomplishments this week:

  • Most of the week spent preparing for design review and writing our report
  • Got rev. 1 mostly ready for ordering. Changelog as follows:
    • Added silks
    • Rerouted some of the ribbon connections
    • Increased the size of tracks on some nets
    • Repoured power plane to use direct contact (no relief)
    • Moved some traces around to reduce impedance on MCU power lines

My personal deliverables for next week:

  • Board actually ordered
  • Status onĀ getting caught up-to-speed with the state of firmware development (ft. Stan and Cameron) while waiting for the board and BOM to arrive

Updates on last week’s deliverables:

  • Version control migration done
  • Board pending review as of Friday (2 days behind schedule, Gantt chart has been pushed back into slack slightly)

Status Report 03-02 (zbp)

My accomplishments this week:

  • Investigated VNA technology for characterizing our antennae. Got reasonable (sub 2) VSWR measurements for our 2.4GHz antennae, but it is looking increasingly unlikely that we’ll be able to get directional gain measurements for our antennae. To do this, we’d need access to the anechoic chamber in REH, as well as RF signal generators. Prof. Mukherjee has been helpful in getting us access to a VNA, but it’s utility is limited to us without the other aforementioned pieces. Furthermore, the given VNA does not include 50Ohm calibration kits, so any numbers we get out of it are possibly bogus. Also, the VNA failed to pick up FM-band signals with what should have been an adequate antenna, so I’m a bit skeptical on its utility for our use case.
  • Rev. 1 Review suggestions implemented and board put in for ordering. Changes made this week to the layout were largely thermal-oriented improvements, like increasing trace widths, embiggening power pours, adding via stitching, etc.

My personal deliverables for next week

  • Status onĀ getting caught up-to-speed with the state of firmware development (ft. Stan and Cameron) while waiting for the board and BOM to arrive. Sorry I didn’t get this done this past week, my bad.

Updates on last week’s deliverables:

  • Firmware still not reviewed adequately, been reviewing other CMR firmware changes
  • Board submitted for ordering

Status Report 02-23 (zbp)

My accomplishments this week:

  • Further touched up rev. 1 of the PCB assembly. See attached photos (not quite as up-to-date as the similar ones included in our design review):

  • I’m still on schedule regarding revision 1
  • Minor changes to schematics
    • Added external 1KR pull-ups on the XB reset lines, because I don’t trust us to remember to use the internal STM pull-ups
    • Added commissioning button to enable WPS mode more easily on the Wi-fi XBee
  • Minor changes in the PCB design made this week:
    • Fixed some designators, rerouted a few nets, shrunk all vias to 32/16mil, added a commissioning button, added some silks to enhance user experience (labeled radios), rearranged transceiver board to map consistently left/zigbee and right/wifi, changed pour reliefs, changed transceiver board corners to curves, added a footprint, etc.
  • Worked on and rehearsed for our design review
    • My total time spent on it was 6+ hrs., as I’ll be the one presenting

My personal deliverables for next week:

  • Board ordered by mid-week
    • Iā€™ll then transition into firmware writing/testing + antenna testing mode until rev. 1 gets here
  • Migrate development from our tags to our trunk folder
    • Yes Iā€™m a big dumb idiot

Updates on last week’s deliverables:

  • Mounting hole positions decided on at .15″ inset from a 2×2″ square board āœ“
  • Range test was successful at 250-300m using our current antenna pairing, but inconclusive at 500+m; See the team’s status report for more details