Status Snapshot – 27 Sept 2017

Not too much progress over the last week or so, I was mostly away from the project, cleaning up and organizing the project spaces for the upcoming winter – but that’s another post.

I did have time for a couple of items:

I added the enclosure for the mast that supports the solar panels:

  • Cut back panel to size
  • Attached Velcro to two carrier panels (and the required tangential work on repairing the sewing machine…)
  • Stitched the carrier panels to the tarp – by hand – with one of those ‘Speedy Stitcher’ awls. Don’t let the name fool you – it’s not really that speedy.
  • Pounded 5 new grommets into the tarp edge. Hammering into end grain for the hole punch worked best, and setting the grommets is easy if everything is 100% lined up & hit straight.

Today I have to finish finished the enclosure because the weather is about to turn crappy and I’d like the mast to be sealed up.

I also grabbed an Arduino and tested the elevation feedback wiring – it still works, so spending a season outdoors didn’t seem to affect it. The color coding is:

  • Brown – Ground
  • Green – +5V
  • White – Analog return
I still have to run power/comms lines from the power box. Power will terminate on a 2.1mm barrel jack connector; I’m not sure about comms. I think maybe just a two pin header for now since it’s ‘just I2C’ and I can connect it to the open side of the RTC.

// 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.


  • Cut fabric for mast cover, fab and attach velcro closure; set grommets and screwed to backside of solar panels.
  • 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

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.