Development Environment

Development Environment

If you follow the GitHub repository https://github.com/ThingEngineer/ReactorForge by clicking [Watch] you may have noticed work on the firmware. I’ve begun setting up the new development environment. Going forward, I don’t want to deal with switching to Windows to work in AVR Studio. I never liked that environment anyway. I had talked about possibly moving everything into the Arduino environment because of its popularity, however that has its own set of issues. For starters, support for the AT90PWM family of chips isn’t there, and I don’t want to spend the time to add it. Then there’s this:

https://atom.io + https://atom.io/packages/platomformio = frickin awesome

Beginning Development Environment

Arduino is a great prototyping platform and IDE to get started on if you have never worked with microcontrollers. As a beginner, it can get you building projects faster than any other platform out there. But eventually, the features that make it convenient and easy to use can hold you back. It lacks many features which make writing code quicker, easier, and have become quite standard in modern text editors. There are also bits of code that get inserted into your code that can cause some very head-scratching issues.

Moving Beyond Arduino

The next logical step is to leave the Arduino IDE behind. We do that by working in a more fully-featured development environment. Atom + PlatformIO is my new favorite open source cross-platform IDE. It even comes with the Arduino framework among others. That lets you test drive it with a code structure you are familiar. When you are ready, you can remove the training wheels and go full native C++. There is so much more I could brag about with both of these tools. But I’ll let you discover the awesomeness yourself!

Development Environment

Next Steps

What’s next? I’m going to begin porting over the libraries used in the existing project. Then the main code, and start rewriting, optimizing, etc. The photo above is a test rig I used for setting up the new IDE. I will continue to use it throughout the porting process. Once the code is stable in its new environment, I’ll switch over to the ReactorForge!

I had also planned on using this setup to demo and explain the basics behind the AT90PMW software PLL setup. I’ll get to that but for now, it’s back to work in the new development environment!

ReactorForge History – A brief history lesson 01010010

ReactorForge History

There were many before it, after it and in-betweens, but these are the milestones! This is a brief ReactorForge History lesson.

ReactorForge History

From left to right.

  • The first MOSFET version on a PCB. It worked great but didn’t couldn’t handle the power level I wanted. I ended up pushing it to failure and moving to brick IGBTs.
  • The first IGBT version on a PCB. This design is based on a CD4046 PLL and uses gate drive transformer to drive the large brick IGBTs (the ReactorForge now uses hybrid drivers). If you are into electronics and you’ve never worked with a PLL, even if just on a breadboard you should. PLL’s are very well documented, fascinating little devices. This circuit works great but its frequency operation range was limited by the external passives for the VCO (voltage controlled oscillator). Due to its reliance on these passive components, it is also affected by temperature.
  • For mainly that and a few other reasons I decided to explore a software PLL solution. After going around the usual suspects and understanding how a PLL worked I thought there must be some way to do it with a low-cost MCU, not a freaking FPGA or high power processor. Maybe some type of PWM/comparator combination I thought. I found my solution in a motor controller, or power stage controller chip made by Atmel, the PSC216,316 microcontroller. That’s what this breadboard is, the early testing for what is now a rock-solid way to find the resonant frequency (Fr) and adjust power levels by offsetting that frequency from the current Fr all while soft switching (i.e. not making heat in the wrong places and exploding electronics). This was the result of those early tests…

ReactorForge History - Current

The Future:

One more board redesign may be in order but we’ll see. I may look into reducing the size of the board down the standard Eurocard PCB size of 100mm x 160mm. Although the current size is still within the free size limit of 160mm^2 for Autodesk Eagle.

That was the ReactorForge History, now let’s forge ahead to the future!