New controller design


Howard Dutton
 

I've completed basic testing of the MaxPCB4 and though the design is still considered "experimental" everything seems to be working well and this update doesn't stray too far from the reasonably well proven MaxPCB3.6.  Note that this design is supported in OnStepX only.

The main reason for this update is for better support of the TMC2209 stepper drivers (specifically the FYSETC TMC2209 v3.1 though other brands/models should work with it as well) as these have a great cost/performance ratio and allow for advanced servo control of stepper motors in OnStepX.  This improved support allows for high speed UART comms to the TMC2209s (all four sockets) which can plug right in with no modifications.  There are some limitations with mixing TMC2209 drivers with other driver types (TMC SPI and Traditional StepStick) among the four sockets, but in many cases it can be done.

A secondary reason was to make assembly and sourcing components easier by use of pre-assembled SMT components, since EasyEDA now makes the ordering process for that much easier.

Finally, in the link above there is a more comprehensive discussion of other design decisions, like dropping the DS3231 in favor of using the Teensy's onboard RTC.


Howard Dutton
 
Edited

There's a similar except TMC2209 UART (and GENERIC like the DM542T for example) driver only MaxESP4 that takes advantage of the pins saved by not supporting the TMC SPI stepper drivers to make a more capable controller.  Unfortunately its first round of testing came up short of my expectations with a few unforeseen problems so I'm not releasing it quite yet.  I've updated the design to address those shortcomings though and have the new PCB's to build one; as you can see below this requires much less soldering than a MaxESP3.

It still requires sharing some features but not to the extent that the MaxESP3 does and unlike the MaxESP3...

  • The Pin Aux2 was used to choose between having MISO (stepper driver status) or WeMos D1 Mini Reset (flash the ESP8266 through the ESP32) or Axis3 ENable (to allow powering down a focuser driver.)
    • In the new design you can't flash the ESP8266.
      • Sometimes an ESP32 or Teensy/Ethernet variation is in the socket so that wouldn't work anyway.
      • Users have trouble with using the feature and usually end up ignoring it from what I can tell.
    • In the new design all axes can be powered down using the UART interface so no pin is required for that.
    • In the new design stepper driver status (RX) is on a dedicated pin.
  • The Aux3/Aux4 pins normally provide home sense inputs, they were shared with the I2C pins so they were often unavailable.
    • In the new design I2C pins and Aux3/Aux4 pins are dedicated and not shared.
  • The Pin Aux7 (input only) was used for either PPS or Limit Sense.
    • In the new design Aux7 does the same but was moved to an I/O pin for more flexibility.
    • In the new design Aux7 is also available on both the DB15 and the stereo mini jack on the back if bridged for that.
      • You can alternatively bridge 3.3V power to the stereo mini jack at the back for 1-Wire purposes and still access Aux7 for PPS or Limit etc. at the DB15.
  • The Pin Aux8 was used for either the Buzzer or Status LED or Reticle.
    • In the new design Aux8 is dedicated to the Buzzer and Status LED.
      • Putting the buzzer and status led on the same pin isn't quite as nice as having dedicated pins for each (as the MaxPCB4 has) but the most useful aspects of those two features are preserved at least...  You get the flashed error codes at boot if something goes wrong and you get the buzzer for the mount motion warning.
    • In the new design the Reticle output has a dedicated pin.
      • I use "dedicated" loosely, as this Pin (and the associated connector) make a great place for the 1-Wire interface which allows control of dew heaters.
  • Naturally TMC2209 UART support allows all four drivers to have runtime driver current and microstep mode settings (in addition to the usual runtime driver settings) and status feedback.

Downsides vs. the MaxPCB4 (other than being TMC2209 only and much slower):
  • The ESP32 only has 3x Serial UART's so one for the USB connection, one for the WeMos D1 Mini Socket, and one for the TMC2209's.
    • That leaves no spare Serial UART for GPS except perhaps one could use SoftwareSerial instead but I'm not sure about that.
  • The pins Aux5/Aux6 are dedicated to a spare serial interface on the DB15 connector.
    • Those pins are present on the MaxESP4 but they are the USB port Serial UART pins.
    • Really only useful if one wanted a more durable USB connector, RS232, or were otherwise willing to forgo having the dedicated USB port.


Drew 🔭📷🚴‍♂️
 

On Wed, Nov 2, 2022 at 09:32 AM, Howard Dutton wrote:
There's a similar except TMC2209 UART (and GENERIC like the DM542T for example) driver only MaxESP4
Could you give us link (make public?) that design also?


Howard Dutton
 

On Wed, Nov 2, 2022 at 07:07 AM, Drew 🔭📷🚴‍♂️ wrote:
Could you give us link (make public?) that design also?
Let me test first, afraid it won't work properly, ESP32's are tricky beasts to get right when you are trying to use those strapping pins.


Howard Dutton
 

On Wed, Nov 2, 2022 at 07:10 AM, Howard Dutton wrote:
Let me test first, afraid it won't work properly, ESP32's are tricky beasts to get right when you are trying to use those strapping pins.
And while I tried to keep changes vs. the MaxESP3 to a minimum, and watch what I was doing, it does have a fair number of changes.

Somewhat confidence building is that the first prototype seemed to work ok except I made the mistake of believing the pullup on PDN disabled the TMC2209's at boot.  That was not the case and so required adding an ENable control pin (w/pull up resistor to disable at boot) for the drivers.  Which then required moving the status LED to the Buzzer control pin to free up a pin for EN.  Which now the Buzzer/Status LED are on a strapping pin that needs to be LOW for boot and the status LED was configured as sink driven (i.e. there is a weak current path to +3.3V) which isn't good so I inverted the Status LED so it's wired source driven.

Side effect of that is LED ON (successful boot) is logic HIGH so a piezo buzzer will squeal (but not a mini speaker which this really targets.)  Figured I can add a hint to the pinmap to make it work properly for both though.  Speaking of the Buzzer piezo vs. mini speaker there is a silk-screened shunt shown that you add for using the piezo buzzer or leave absent (as-is) for the mini-speaker.


Howard Dutton
 

On Wed, Nov 2, 2022 at 08:09 AM, Howard Dutton wrote:
Somewhat confidence building is that the first prototype seemed to work ok except I made the mistake of believing the pullup on PDN disabled the TMC2209's at boot. 
The reason this is a big deal is that ideally you want the Vref set for 2.5V (for full current control from X) and these drivers default come up enabled.  So full power to the motors (2.5A peak) while OnStepX is booting until it sends the commands to scale the current.


Howard Dutton
 
Edited

I assembled and did some basic testing of the MaxESP4.

Everything I checked, which was quite a bit but not all features, appears to be working properly so I made the project public now:

https://oshwlab.com/hdutton/maxesp4


Howard Dutton
 

It's difficult to see how much less soldering is needed with a MaxESP4 vs. a MaxESP3 from the top but from the bottom it's apparent...

MaxESP3:



MaxESP4:


Howard Dutton
 
Edited

On Thu, Nov 3, 2022 at 03:07 AM, Howard Dutton wrote:
I assembled and did some basic testing of the MaxESP4.

Everything I checked, which was quite a bit but not all features, appears to be working properly so I made the project public now:

https://oshwlab.com/hdutton/maxesp4
I've also released a minor variation of the MaxESP4 called the MaxESP4R.

It's completely untested but adds SMT assembled RTC DS3231 and 8KB EEPROM so you don't have to order the ZS04 module separately:
https://oshwlab.com/hdutton/maxesp4r


Howard Dutton
 
Edited

On Thu, Nov 3, 2022 at 09:34 AM, Howard Dutton wrote:
I've also released a minor variation of the MaxESP4 called the MaxESP4R.
It uses the schematic for those components from the MaxSTM3.6I which works so I'd be surprised if there were an issue with this:


Howard Dutton
 
Edited

On Thu, Nov 3, 2022 at 09:42 AM, Howard Dutton wrote:
On Thu, Nov 3, 2022 at 09:34 AM, Howard Dutton wrote:
I've also released a minor variation of the MaxESP4 called the MaxESP4R.
It uses the schematic for those components from the MaxSTM3.6I which works so I'd be surprised if there were an issue with this
Other than it costing more vs. the MaxESP4 design... since the DS3231's cost $6.41 each from EasyEDA.


Howard Dutton
 
Edited

I set some (mostly non-stocked) through hole components so they don't appear on the BOM of these designs...

This makes it easier to order since there is less clutter in the BOM during the ordering process.  It also makes it easier to exclude the few through hole components that are there so you can decide to keep costs down (deselect them) or order as-is to have them hand soldered.  Though if you have to order the following separately it's probably cheapest/best to just have it assembled with them.

There are only four components on the BOM that are hand soldered:
  • The Power Jack.
  • The Fuse Holder.
  • The 2-pin KK Molex (optional power switch connection.)
  • The Stereo Mini Jack.


Peter Boreland
 

Howard, I notice that have licensed this CC-BY-NC-SA 3.0. Does this mean we can not make up and sell built controllers for people?

Peter


Howard Dutton
 

On Fri, Nov 11, 2022 at 05:16 AM, Peter Boreland wrote:
Does this mean we can not make up and sell built controllers for people?
That's correct.


Peter Boreland
 

Howard, would you offer a license for this design?  

Regards

Peter


Howard Dutton
 
Edited

Never built but since the new SHC controller with integrated ESP32 seems to work I also might replace my EM10 controller at some point...

This has the same footprint and component positioning as the MiniPCB v1.  It can be built with horizontal connectors or vertical connectors for mounting behind a panel (as I do for my EM10 mount.)  It relies on OnStepX providing the Website running on the ESP32 so no separate ESP8266/SWS is required.

  • In addition to the features of a MiniPCB v1 (including its very small size at 3.65" x 2.0") it adds:
  • Buzzer
  • I2C
  • Option to use Limit as 1-Wire, including pads positioned for a vertical (panel mount) 3.5mm stereo mini jack so the dew heater controller can plug right in.
  • Full TMC2209 UART mode driver support (in addition to full control of pretty much any other StepStick driver.)
  • Oh yea, and there's a DS3231 with battery holder on the back so it can have an RTC if you solder those on.


George Cushing
 

Very interesting. I've been studying the Miniv1 with the idea of doing something with the ESP32. There's not a lot of demand for the small board, but occasionally I get a request for one. With Teensy's scare and 15X the price of a ESP32 DOWD module this substitution makes sense to me.

Will this design be made available?



hitosi sato
 

I am also very interested in this.
I haven't studied how to get a board with SMT soldered on, but it seems compact and easy to handle.
It could be used for both the mount and the wifi focuser.
There's also an I2C pin so I can connect a BME280.

Hitoshi


Howard Dutton
 

On Sat, Nov 26, 2022 at 01:44 PM, hitosi sato wrote:
I haven't studied how to get a board with SMT soldered on, but it seems compact and easy to handle.
SMT is super easy to order now, it's a 2 minute process.  Basically order this PCB, give me SMT, yes, yes, pay.

It could be used for both the mount and the wifi focuser.
I'll probably do a 1-Axis focuser only board with just focuser important features like thermistor input and reticle output, perhaps ESP8266 or an ESP32-C3?  Really really tiny.

There's also an I2C pin so I can connect a BME280.
Allows all kinds of flexibility.


George Cushing
 

Fairly easy to work with SMDs at this scale. You'll need solder paste and a dispenser.

image.png

Dispense a poppy seed size of paste on the solder pads of the small resistors and caps. Place the device and heat each end until the solder flows to the tip of the pencil. I use a chisel tip with the temp 320-340°C.

For the ESP32 module, I use thermal setting SMD epoxy to immobilize it. Heat sink tape will work too. Once the bugger can't slide around, I lay a thread of paste along one side's castellated pin contacts. Then run the pencil tip along the top of the contacts at a speed leisurely enough to heat the contacts and draw the solder under them. Move to another side. Bridges between contacts are very rare, but check to be sure all contacts are bridged to the solder pad.