Skip to content

OnStepX - UMi17 V2.0.0 - I2C FRAM

Latest
Compare
Choose a tag to compare
@pardovot pardovot released this 01 Jan 21:33

** USE AT YOUR OWN RISK **

There seems to be a difference between OnStep and OnStepX in the way slews work, if you flash this firmware, please make sure to test that both RA and DEC slew in the right direction!!

Called it version 2 because the first version was simply improving the wear leveling algorithm to the electronic homing, in this version I just use FRAM.

What is I2C?

"Inter-Integrated Circuit (I2C) Protocol" - is a chip-to-chip protocol for communicating with low-speed peripherals.
To make it short - I2C allows us to daisy chain I2C devices onto one another without having to deal with too many additional wires, each I2C device have a unique address which we can use, 4 pins are used:
VCC(5V)
GND
SCL(serial clock pin)
SDA(serial data pin)

More info can be found on google.

How we use it with UMi 17?
Our RTC module is DS3231:
image

It is an I2C device, which we can attach our I2C FRAM to through the 4 I2C protocol pins like this:
image

This makes the FRAM I2C device accessible and we can replace the original EEPROM with our new FRAM.

Changes

  • Adjust config to UMi17
  • Use I2C FRAM - MB85RC256
  • Lower FRAM 32kb page to 4kb to make OnStepX work faster
  • Auto tracking + Electronic homing auxiliary / OnStep command protocol
  • New LED status changes:
    Solid LED - Mount parked
    Slow blinking - Tracking
    Fast blinking - Slewing

Default settings:

  • Auto tracking = OFF
  • Electronic homing = OFF
  • Preferred pier side = BEST(changes are now saved to EEPROM so need to change only once)
  • Sync command can no longer change pier side and now defaults to OFF for more safety

E-home:
The original E-home version had a major flaw, the wear leveling was spread across some of the eeprom ,but the index position was static.
Since the eeprom have 1m writes per index, that means this index can withstand around 280 hours according to specs(could vary). With an average of 8 hours per session, that means around 35 sessions, which is not a lot.

Using I2C FRAM we have basically unlimited amount of writes, that means we don't need any fancy wear leveling algorithms and can just write to the same index with no issues every second.

Link to I2C FRAM from aliexpress:
https://www.aliexpress.com/item/1005006584211412.html

In order to use the FRAM some soldering skills are required obviously, it's very easy and only 4 pins are needed, the 4 pins on the other side of the DS3231 module are also not connected to anything on the PCB itself, so it should be very safe, but I'm obviously not responsible for any damage that might occur during the process.

I repeat:

** USE AT YOUR OWN RISK **

Full Changelog: https://github.com/pardovot/OnStepX/commits/V2.0.0