Completion Plan - SteveJustin1963/Telescope-Tec1 GitHub Wiki

kimi.com

I'll fetch the repository contents first so I can understand what "tec-SCOPE" is and then create a realistic completion plan.

Completion Plan for “tec-SCOPE” (Z80-based Go-To telescope controller)

The repo is still a loose collection of notes, schematics and snippets.
Treat it like any R&D project: get one vertical slice working end-to-end, then grow outward.
Below is a 10-week schedule that takes you from “bench full of parts” to “push-button slew to Vega”.


0. Ground-rules (apply every week)

  • Version-control every change (git tag v0.1, v0.2 …)
  • Keep a single paper notebook – date every entry.
  • No mechanical work without the metal-shop buddy rule.
  • One-hour “Friday demo” – if it isn’t shown, it didn’t happen.

1. Parts & Workspace Audit (Week 1)

Goal: know what you really have.

  • Inventory motors, gears, encoders, TEC-1/SC-1 boards, power supplies.
  • Measure physical travel of both axes (degrees).
  • Decide final gear ratio (≈ 10:1 recommended) and order any missing belts/pulleys.
  • Print the mechanical drawings already in the repo; mark hole patterns that need re-machining.

2. Mechanical Minimum-Viable-Mount (Week 2)

Goal: both axes turn slowly under finger power with ≤ 1° backlash.

  • Strip original Dobson mount bearings; replace with threaded rod + thrust bearings or printed bushing blocks.
  • Temporarily couple two DC gear-motors (foot-massager worm boxes are fine) with rubber hose and jubilee clips – we’ll machine proper couplers later.
  • Add the 600 PPR encoders to motor shafts, not the telescope axis (10× resolution after gearing).
  • Hand-spin test: Stellarium on phone shows expected sky movement when you twist the OTA – proves encoders and A-B wiring.

3. Electronics Bring-up (Week 3)

Goal: Z80 talks to the outside world without crashing.

  • Build back-plane: +5 V, +12 V, GND, 42 h I/O decoder already coded.
  • Flash the “compact_SPI.z80” routine; scope CS, CLK, MOSI – must see 0xAA 0x55 pattern clean at ≥ 1 µs/bit.
  • Wire two ATtiny85s on breadboard as SPI slaves; load ATtiny85-QEI.ino; verify 32-bit counter increments when you turn encoder by hand.
  • Add resettable 1 A fuses on motor supply and encoder +5 V – you will short something.

4. Motor Control Loop (Week 4)

Goal: software can slew + stop each axis.

  • Build dual L298N or TB6612FNG board; connect to PWM pins from Z80 port 43 h (bit-bang or CTC timer).
  • Write “motor_test.mint”:
    • ‘W’ – altitude up, ‘S’ – down, ‘A’ – az left, ‘D’ – right, space – emergency stop.
  • Tune PWM duty so full-stick equals ≈ 3°/s; record encoder counts/sec → build counts-per-degree table for each axis.

5. Closed-Loop Position (Week 5)

Goal: command “go to 45° alt” and it arrives within 0.5°.

  • Implement PID in MINT (or on ATtiny if you run out of cycles). Constants start at Kp = 8, Ki = 0, Kd = 2.
  • Add dead-band: if |error| < 20 encoder ticks, cut motor.
  • Log every servo tick to UART (9600 8N1) – graph in Excel; adjust Kp until overshoot < 5 %.
  • Store final ticks-per-degree constants in EEPROM so you don’t re-calibrate every boot.

6. Sky Maths & Stellarium Link (Week 6)

Goal: convert “RA 18h 36m 56s Dec +38° 47′ 06″” to alt-az for your longitude/latitude.

  • Port the low-precision MINT routines already in repo (or use AM9511 FPU if you populated it).
  • Add a second 38 400 baud UART (bit-bang or SIO/2) labelled “STLINK”.
  • Implement LX200 subset:
    • :GR# – get RA, :GD# – get Dec, :Sr 18:36:56#, :Sd +38:47:06#, :MS# – slew.
  • Inside Stellarium → Telescope Control → “Add new” → LX200, your COM port – the cross-hair should jump when you issue :Sr … :MS# from terminal.

7. Alignment & Pointing Model (Week 7)

Goal: 5 arc-min RMS across the sky with a 2-star align.

  • Pick two bright stars > 60° apart (e.g. Sirius, Rigel).
  • Centre star in 25 mm eyepiece; press ‘1’ or ‘2’ on TEC-1 keypad – store encoder counts.
  • Solve the classical 4-unknown model (alt-offset, az-offset, axis non-perpendicularity, cone) or use the “simple offset” already in OnStep docs if you’re lazy.
  • Test on third star – error must be inside eyepiece field (≈ 0.7°). If not, check gear slop and encoder coupling grub-screws.

8. Hand-Pad & Safety Features (Week 8)

Goal: no laptop required for normal observing.

  • Build 4×4 keypad (0-9, EAST, WEST, UP, DOWN, ENTER, SPEED, MENU).
  • Implement rate buttons: 1× sidereal, 8×, 64×, 600×.
  • Add limit switches at horizon and 360° wrap; if hit, stop and force opposite direction only.
  • Buzzer beeps on limits and at end-of-slew – invaluable in the dark.

9. Tracking & Basic Imaging (Week 9)

Goal: 30 s unguided exposure with star trail < 1 pixel on DSLR.

  • Turn PID into siderial-rate tracker: add 15.04 arc-sec/sec to azimuth encoder set-point.
  • PEC (Periodic Error Correction): record encoder deviation over 5 worm cycles; play back inverse.
  • Add ST-4 compatible guide port (four opto-isolated inputs: N/S/E/W).
  • Shoot 30 s JPEG of M42 – zoom in camera LCD; trails must be ≤ 2 pixels.

10. Cleanup, Docs & Release (Week 10)

Goal: repo is reproducible by a stranger with average Z80 skills.

  • KiCad schematics exported as PDF; Gerber zip in /hardware.
  • MINT, Arduino and Z80 source in /firmware with Makefile that builds under Linux & Windows.
  • One-page “Quick-start” – parts list, wiring photo, first-slew video link.
  • Tag v1.0, create GitHub release, announce on Cloudy Nights & ZX-TEAM forum.

Optional stretch goals (after v1.0)

  • GPS + RTC so you never type date/time.
  • Bluetooth LX200 instead of USB-UART.
  • DSLR shutter control for full unattended imaging run.
  • Convert to OnStepX (STM32) when you out-grow the TEC-1.

Follow the checklist week by week and you’ll turn the pile of GitHub notes into a working, push-button Go-To telescope that runs on 1985 tech – and you’ll actually finish it.

////

Below is a “gap audit” against the repo as it exists today.
If it isn’t listed here, assume it is completely missing – no stub, no TODO file, no schematic, no code.


  1. Coherent top-level README

    • No bill-of-materials, no wiring diagram, no “flash this first” firmware image.
  2. KiCad (or EasyEDA) project

    • Only PNG screenshots of partial scatters; no unified schematic, no PCB, no Gerbers.
  3. Mechanical drawings / STEP files

    • Motor brackets, encoder collars, worm-to-Dobson adapter plates – all absent.
  4. Power budget & wiring harness

    • No fuse values, no wire gauges, no connector part numbers.
    • No separate motor / logic ground scheme → noise gremlin guaranteed.
  5. Motor driver choice & schematic

    • Mentions L298N in text but no hook-up drawing, no fly-back diodes, no current-sense resistor.
  6. Emergency-stop & limit-switch circuit

    • Software talks about limits; no hardware interlock (relay/FET crowbar).
  7. Real-time clock / calendar

    • Sidereal tracking needs UTC + date; code still expects user to type it in every boot.
  8. LCD / OLED status display

    • Only mentions 6-digit 7-seg; no driver code, no I²C GPIO expander schematic.
  9. Full LX200 command set

    • Only :GR#, :GD#, :Sr#, :Sd#, :MS# listed; missing :Q# (quit slew), :CM# (sync), :RC# / :RM# (rate change), etc.
  10. Coordinate transformation module

    • Repo has AM9511 SPI sample but no working MINT subroutine that returns alt,az given RA,Dec,JD,lat,lon.
  11. Alignment math implementation

    • No 1-, 2- or 3-star matrix solver; no EEPROM storage of model coefficients.
  12. Periodic-Error-Correction (PEC) buffer

    • Place-holder comment only; no RAM layout, no playback interrupt routine.
  13. ST-4 autoguide port hardware & ISR

    • Four opto-isolators and 1 ms timer tick code are both missing.
  14. Boot-loader / firmware update path

    • TEC-1 has no way to field-update; no serial loader, no Intel-Hex parser.
  15. Calibration & tuning procedure document

    • No step-by-step for “how to measure ticks-per-degree”, “how to set cone error”, etc.
  16. Safety & compliance notes

    • Laser pointer >1 mW mentioned; no copy of Australian permit template, no warning label artwork.
  17. Test suite / continuous-integration

    • No GitHub action that assembles the Z80 code, no Python script that feeds LX200 commands to a dummy serial port and asserts replies.
  18. License file

    • Repo is public but has no LICENSE; legally no one can reuse the code.
  19. Issue & feature templates

    • Blank issue tracker; contributors don’t know whether to file bugs against hardware, firmware or math.
  20. Project roadmap / Kanban board

    • No milestones, no “good first issue” tags → hard for volunteers to jump in.

If you add only the first five items (README, KiCad, mechanicals, power plan, motor driver schematic) the project becomes reproducible; the rest can be filled in incrementively without blocking a minimal working telescope.

//////