Progress has been slow since the last update. In mid 2015 I attempted to get the Rotor to dynamically levitate, but as soon as the Guide Wheels retracted the Rotor moved out of alignment and contacted the fixed frame magnets. No damage was done as the speed was quite slow. I have always had a problem with estimating the Guide Wheels release speed. Too slow and it will not rotate correctly. Too fast and the Rotor then contacts the frame magnets, and some serious damage may result.
A possible solution has been to install more fixed Guide Wheels around the frame, in positions which will make it impossible for Rotor / Frame magnet contact to occur.
I have also made some electromagnetic stabilizers
to pulse the Rotor at startup, in an attempt to help attain Rotor stability. These were in place and operating, but were of no apparent benefit. I have kept these coils in place, as they may be of benefit during the next startup attempt. The coil configuration is very similar to the drive coils. These coils have been designed for a dual purpose. They are also an experimental means of lateral machine movement.
I2C Microcontroller Interconnection
There are now several microcontrollers in use on the machine. To enable the integration of the Idle / Run system above, and to allow for a second Rotor and any other unforeseen requirements, I have converted to I2C communication around the machine. The programming has been difficult, mainly because I am grafting a new system into an old one.
Debugging has been simplified by operating 4 computers, each connected to a seperate pic. If better planning had been possible the programming may have been much easier. The I2C system now works well. There are limitations regarding which Picaxe chips will work as slaves. I find that the best way may be to use the 40X2 as Master with a mix of 40X2 or 20X2 as Slaves. There will always be a use found for any spare pins, and the extra program memory and available variables are worth the small extra cost. I now have Veroboard standalone PCBs for the 18M2, all the 20 pin variants, and the 40X2. The tacho has been converted to a 20X2 slave. The I2C system is capable of up to 127 slaves so should be more than adequate.
The machine weight needs to be known and monitored easily to see if there is any change when rotating, and this needs to be done from a safe distance.
The machine is sitting on 3 older style analogue dial type bathroom scales and currently weighs in at 217 kg. The rotor weighs about 30 of those kg. As it seems to be very dangerous to attempt to read these scales with the Rotor spinning, I have made a 4 digit display using 1" 7 segment LEDs similar to the tacho, but this can read to 999.9 kg. The bathroom scales will go to a max of 120kg each for a total of 360kg. Each scale has been fitted with a magnet and a Hall Effect sensor. The system is quite sensitive but may lack accuracy. Adjustment has been made in the program and the LED display is accurate at the current weight.
A 40 pin Picaxe 40X2 has been used, as this allows for another 4 digit display to be connected to the same Pic. The Pic collects the data from the 3 scales and sums this for the LED display output. The PCBs are Veroboard. One board for 2 digits. These connect together reasonable easily. The design is for common cathode displays, but should be ok for common anode with minor changes and a different Darlington driver. A 4081 AND gate is included on each PCB. This gives the ability to control the display intensity via PWM and allows for moving decimal points or more digit blanking if required. This system has been built and tested OK. I intend to use the expansion capability to include an ammeter. Provision has been included for I2C data transfer if required. This system would be ideal for twin tachos, or highly visible volt and ammeter displays for videos of experimental electrical projects.
Rotor Speed Control
It may take considerable effort and time to get the Rotor to rotate correctly. If this can be achieved I will not want to stop the machine to make any adjustments required. I have built a rotor control panel with several functions. This panel uses a Picaxe 40X2, set to slave mode.
1 I can only start the Rotor when indicator LEDs show that Guide Wheels
etc are ready for startup.
2 I can abort startup if required, in a controlled manner.
3 Rotor will get to and remain at Idle Speed.
4 Manual switch from Idle to Run Speed
5 When at Run Speed I can increase the Run Speed gradually.
6 Speed can be altered between Idle/Run or Run/Idle at any time using the switch.
7 Controlled machine shutdown can only be done from Idle.
8 Designed to be adaptable to twin Rotor control.
The Rotor has been turning using just 3 coils, but I have now built and installed another 3 coils on the opposite side of the machine. The drive is now much more powerful. The new coils use 0.5mm magnet wire, down from 0.75mm, and a lot more turns can fit it the tight space. These coils use less power, and run cooler, so I will convert the original coils to the thinner gauge wire. Problems occurred with the 6 Guide Wheel pics acting abnormally and this was found to be caused by electrical spikes. This has been fixed by mounting all the drive coils with insulated fittings to keep them completely isolated from the frame.
Low Side Only Drive Mosfets
The normal method of driving the BLDC motor is via a bridge, using both High Side and Low Side mosfets switched simultaneously. The design of my motor has created many problems and complications, although the electronics now work well.
I now believe that it may be better to use Low Side Only Drive Mosfets. The main change required is that a minimum of 6 coils and 8 magnets would be needed. I have built and tested the electronics on the stabilizers, and they are very simple. My machine already has 6 coils, so to maintain the same power output I would need to increase to 12 coils. I intend to retain the bridge system for now, but if a second Rotor is built then the drive will definitely be the Low Side Only Drive Mosfets
At the time of writing this I am getting reasonably close to another startup attempt.