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