Nearly There!

This morning is all about documentation catchups; most of the hardware build is done and the notes below are updated.

This afternoon is going to be about the enclosure for the azimuth / elevation unit and maybe the power and comms lines from the battery box.


Internals as of 16 Sept 2017. Power not connected.


  • Add a 4 pin line from the logic board to the ESP8266 on the PSU board.
    • TX <> RX’s
    • Enable (Digital 12 to CH_PD)
    • Interrupt (GPIO2 to AVR pin 2)
  • Add 3 pin connector from the Auto/Manual SW & LED to a pin on the MCP, with +5v & GND
  • Add JST line from PSU to logic board; add a JST board connector to the logic board and patch it into +5v and ground busses
  • add a +5v line from the PSU to the Motor Driver board
  • move the keypad to a connector to the MCP23017 instead of punch terminals
  • add a line from the SQW output to the MCP for interrupt MUXing to the AVR (pin 3)
  • add a support standoff for the RTC (DS3231?) to the logic PCB
  • user interface ‘box’ mounting and cable routing, mounting the panels and power switches
  • sun sensor – sealing the top and mounting the base to the array.
  • array mounting and charge cabling
  • platform, table, and mast build, linear actuator tests, azimuth feedback testing and characterization
  • sensor build and testing
  • 3D printing the feedback rack and gear for elevation
  • 3D printing the feedback gear for the XL belt azimuth table
  • 3D printing the sub-panels for the user interface box
  • write up the keywords.txt and example for the XEEPROM library, and test it all out
  • organize the reg[ ] array into config and run entries. Those entries that are only used during setup() don’t have to be copied in memory. I should be able to save about 32 bytes of SRAM this way.
  • wiring for reset button
  • wiring for keypad
  • cut template for sample control panel
  • mounting tabs for panel  needs do-over
  • switches mounted; wiring diag and harness done
  • drill and mount pcb’s to carrier plate

// TODO software:

  • Write up something that manages the 4 byte structs for describing execution state. Library?Plain array? Library, I think. This is linked to schedule, code and the way it’s loaded in memory as objects.
  • copy the sun position schedule currently in a FLASH_ARRAY into some of the unused low bytes of internal EEPROM. I think it fits between the reg[] and MAP.
  • sift thru the current spreadsheet of opcodes and stuff all the blocking calls into one group so we can flag those in the sequence generator – in case we need to run those as ‘exclusive’.
  • I had an idea to wrap the stock LCD library so we can include references to a string_table for option-list type fields. Currently it’s all numeric. Smells like scope creep.
  • revisit vmem – make it buffer-backed for 32 byte page-writes.


Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.