Rotor controller

I have now finished the PCB design and layout of the Az/El controller for the EME and satellite systems. This design will be used for both the 7 meter EME dish and my Satellite system. The design has been done according to the motto: "Why do it simple when you can do it complicated" :)

I went possibly a "little" over the top with this. The processor is a Cortex M7 (i.MXRT1064 from NXP) running at 600 MHz. On the board is 32 MByte SDRAM, 512 Byte FRAM, 128 MByte NAND Flash, USB interface, SMPS for 3.3V and 12V (for encoders etc), 10/100 MBit Ethernet, 2 x incremental encoder interface, RS485 port (for connection to f.ex US Digital absolute encoders etc), CAN Bus interface, 4.3 inch capacitive touch TFT display (480 x 272 pixels), 230VAC optocoupled input for detection of power fail/power off (for saving status in FRAM when using incremental encoders etc).
The motor drivers are modules from Mikroe (H-Bridge 6) that can deliver in excess of 15 amp each. They will deliver the 24 VDC to the Az/El motors (PWM controlled individually for speed ramping etc). I chose the modular approach as it will probably be these that dies in case of serious malfunction, its just a matter of swapping a module if shit happens...
A big thanks to my lovely wife for helping out with the design of the front and backpanels, doing the logo and general placement of stuff :)

PCB's is being sent for production, in a couple of weeks I will know if the there is light at the end of the tunnel ;)

The controller will be housed in a "Hammond 1402H" box, the front and back I will do in black PCB, this makes it easy to get something that looks pretty.

Board, front and backpanel "mounted" on the Hammond 1402H box:

Powersupply (which is way too big for the satellite system, but using the same for both the EME and satellite system) to the right is a Mean Well RPS-500-24-SF (24VDC 20.8 Amp):

Its always nice when the physical outcome looks exactly as the models did :) I got the front, back and the controller PCB back from production (JLCPCB). The front and back are perfect fit!

The controller board also seems to work, so far the Ethernet (10/100 MBit/LwIP) LCD (LvGL), Touch, NAND Flash (LittleFS), SDRAM, USB, Encoder interface, motor drivers, CAN Bus, RS485, FRAM and powersupplies are working perfectly. Still need to check the powerfail detector (optocoupled). All the basic software is up and running, need to make the software control loop for the drives, some failsafe features etc.

In a couple of days I should receive the gearbox, then its on to some real life testing.

2022-07-28 12.58.35
2022-07-28 12.58.27
2022-07-28 12.58.51
2022-07-28 12.58.56
2022-07-28 12.59.12

I received the Az/El drive for the Satellite system. I connected it immediatly to the Rotor Controller, and everything just worked out "of the box"! I can now command Az/El to any position, still a lot of software/GUI to do, but the basics are working very nicely now. The drive will be sitting in the lab for some days while I do some more software development, after this it will be installed in its "forever home", the Satellite system.

The control loop for the drive(s) has programmable accel- and de-accelration ramps. I can control the slope, start speed, end speed and maximum speed. I can also set how many degress the drives needs to get to maximum speed.

All parameters can be set from the GUI /Touch screen once I get the software done.

Currently the parameters are set to:

These parameters gives a very nice movement, at least in a no-load configuration. They will probably need to be tweaked a bit once the antennas etc are mounted to the drive.

For safety reasons I have implemented a "watchdog" feature for the drives. If for some reason, one of the motors does not move (no/too few pulses), the motor will stop immediately. 

The parameters for this can also be tweaked, currently set at: