Driver Kit Update & $400 AA Battery Accident

Broken MacBook Pro LCD

Driver Kit Update

It’s been a busy couple of weeks, both with my day job and working with suppliers to get the best price and quality on parts for the hybrid driver but I do have a driver kit update. I have finalized the supply chain and received all but the passive components and packaging materials. I expect everything to be here by the end of January. Once I have all the parts I’ll take the photographs for the plans, which will be available for free.
I also want to make a test rig for the hybrid driver ICs and the isolated DC to DC converters. They are critical components and cost a decent amount. I want to know that they are performing as expected before they go out in the kits or machines. I have a couple of ideas for building a simple but detailed and accurate Arduino based performance curve profiler similar to those used for testing transistors, diodes, and other electronic components. In the meantime, I’m getting back into the code using the two new driver boards I build from the spare components.

$400 AA Battery Accident

I dropped a harmless little AA on my desk while changing the batteries in my mouse. The battery bounced and rolled away, I didn’t think much about it. A few minutes later I noticed my screen took a hit… awesome. The outer glass isn’t even cracked. It was one of the substrate layers that broke and let out all the magic liquid crystals. Looking around for a replacement LCD for my MacBook Pro Retina, 15-inch, Mid 2014 it seems like $300-$390 is the price range, ouch! I saw some cheaper off brands but this is a beautiful Retina display, and I don’t want to change it out for some knockoff junk LCD.
I have been looking at the new MacBook Pros, but I genuinely don’t like them. The taskbar is a POS gimmick, and the keyboard feels like a toy. I switched to using MacBooks around 2009 when I got fed up with Windows interfering with my work. An [NTFS file system error] blue screen of death the night of a large network activation for AT&T Lightspeed/U-verse was the last straw. I went out and bought my first Mac the next day.
Yes, Mac hardware is costly, but it JUST WORKS! It is always something with Windows. I was tired losing valuable time fixing issues, updating, reinstalling, etc. The MacBooks I have used have ALWAYS worked rock solid. I run CleanMyMac to keep things tidy and a Time Machine at home which is the most intuitive and real world usable backup system ever, for a personal computer at least.
I didn’t mean for this to be a MacBook fanboy review or a windows roasting session, I still use windows too. Personal my favorite OS is Debian, maybe I’ll get a Linux computer. Probably not though, I just run VMware when I need it locally. Besides, I do love the integration between all my devices that Apple affords i.e., desktop, laptop, tablet, phone, TV, etc… It’s just that this is the first physical problem I’ve ever had with a Mac and honestly I’m sort of surprised how easy it broke considering how rough I’ve been on them over the years.
I’m going to order a screen today. I just tell myself, “Don’t worry, you can sell this Mac for about a grand when you upgrade!” Still, what a disappointing accident.

IGBT Driver – Out With The Old, In With The New (Year)


First off, happy New Year! I hope that everyone is doing well in 2018. The first batch of¬†IGBT Driver boards (Hybrid Driver v1.3) from PCBWay came in today, and they look great! ūüôā

IGBT Driver Old And New - PCBWay

PCBWay Manufacturer

This¬†order was my first time using PCBWay¬†and I am blown away by how seamless from end to end the entire process is! I love the technological process tracking, it’s funny, but it reminds me a bit of how some pizza places track the progress of your pizza. My order was accepted, manufactured, shipped and in my shop in no time at all!

The quality of the boards, through-hole plating, silkscreen, bottom side tinning, and everything is a definite A+. I received excellent communication and engineering cooperation from the beginning. Although there are other PCB manufacturers that I like, I am going to use these guys going forward!¬†I’d recommend¬†them for prototyping or production.

PCBWay Technological Process Tracking

Open Source Advocate

I especially like that they encourage open source projects by allowing you to share your board designs, schematics, and project details after ordering. Here is the Hybrid Driver v1.3 in PCBWay’s project sharing section. ¬†They make it easy for others to order¬†boards since all the Gerber files are already there and pre-approved. They even give a 10% back to the project creator. Check it out and take a look at there projects, there are some impressive ones. I like OpenReflow, a control board to convert a simple toaster oven into an accurate¬†reflow oven for soldering SMD components.

IGBT Driver

The new driver boards look great. I like the high gloss black solder mask and the highly visible white silkscreen over it. The slots for the IGBT gate connections turned out great. The board edges are clean and completely burr free.¬†The only mistake I’ve found is that I forgot to set the OSH logo font to vector, so it expanded a bit and overlapped the G2 silkscreen. I also tweaked a few device¬†name¬†silkscreen¬†positions to improve visibility.

IGBT Hybrid Driver v1.3

I’m waiting for the bulk orders of the¬†VLA106-15242 isolated DC to DC converters and the M57962L gate drivers. After that, I’ll stuff the boards and get them in the ReactorForge to continue refining the firmware.

IGBT Driver Stuff Board

The First Kit

I’m planning on making the IGBT Driver (Hybrid Driver v1.3) the first complete kit. Of course, it will be standalone, apart from the rest of the induction heater. I’m ok with having the major components of the induction heater available individually as well as part of the whole machine kit.

I have never made a kit like this, but I am entirely confident¬†that I can put together a great one. Still, this will give me the chance to test that confidence on a smaller scale. I’ve already established a supply¬†chain for the parts and the PCB. What’s left is ordering consumables such as antistatic shielding bags, labels, and packaging. Then,¬†of course, the written¬†plans or instructions for the kit.

Bluetooth Telemetry Link

Bluetooth Telemetry

This Bluetooth serial link is nothing new. I had it working on the existing setup to send data from the ReactorForge control board to the Processing visualization program. The HC-06 Bluetooth module enabled me to see the live telemetry coming from the ReactorForge. That helps you to understand what is going on and tweak parameters such as the PID settings.

Consolidation of Development Process

I’m excited to get the entire development process in one operating system. Before, I was bouncing between macOS, Windows in VMWare Fusion on the Mac, and a separate Windows machine. It’s a long story, but this was partly due to the Windows-only compiler I used at the time. Other shortcuts I made early in the process just to get things working enough to get the induction heater to Daniel’s shop also helped put me in that spot.

Problems Connecting to the HC-06 Bluetooth Module on Mac

Getting the¬†HC-06 Bluetooth to Serial module working on macOS wasn’t hard, but I did have one issue. The HC-06 seemed to just disconnect randomly after a minute or two of being connected. Then when I would try to reconnect to it, the port would be busy. I knew it wasn’t busy or open using¬†lsof | grep HC-06 or whatever your’s is named, Reactor-Link in my case.

I fired up Windows in VMware Fusion and paired the HC-06 Bluetooth module. Then I opened a connection to it using a terminal program. I also began a screen session (terminal) on the Mac side with a USB to serial adapter. The USB serial adapter was connected to the HC-06 Bluetooth module to monitor it (and send data from it).

Anyway, this worked fine, and the HC-06 Bluetooth module never lost connection on the Windows side. I did notice that on the Windows side, the HC-06 Bluetooth module asked me for asked me for the pin number during the pairing process, but it did not ask on the Mac side. I removed the device from on the Mac side in the Bluetooth manager and re-Paired it. To my annoyance and relief, this fixed the disconnecting issue. Maybe I changed the pin in the past since the last time it had been connected to the Mac.

Bluetooth on macOS

So this is the simple test setup. The photos say it all I think.

Bluetooth Telemetry

Bluetooth Telemetry

Bluetooth HC-06.pdf

Libraries, Drivers, Etc.

With that working, I’m going to work on the libraries now. I’m looking at whether or not to get the existing libraries working in the new environment or use new libraries. ¬†I’m leaning toward new libraries because there are quite a few compiler warnings and even some errors from the old ones. I’ll have to update function names and setup code, but I’d prefer to¬†start with something cleaner and updated. I’m pushing it all to GitHub as I go!

Addition Terminal Jargon

The astute reader might notice that I am using the /dev/tty.* version of the device rather than the /dev/cu.* version.¬†So, what’s the difference? TTY devices are for calling into UNIX systems, whereas CU (Call-Up) devices are for calling out from them (e.g., modems). We want to call-out, so /dev/cu.* is the correct device to use.

The technical difference is that /dev/tty.* devices will wait (or listen) for DCD (data-carrier-detect) e.g., someone calling in, before responding. /dev/cu.* devices do not assert DCD, so they will always connect (respond or succeed) immediately. Since neither the HC-06 Bluetooth module or the USB to serial adapter support DCD it’s not an issue. Still, following best practice, you should use the correct port.

So why did I use the wrong one in the photos? I switched to /dev/tty.* when I was having the connection issue and just forgot to switch back before documenting it.

Development Environment

Development Environment

If you follow the GitHub repository¬† 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: + = 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!

Mains Power Feed Complete

Mains Power

This is the last mains power update for the ReactorForge Induction Heater. It will be the last because it’s complete! Here is how the last couple days of that process went.

Mains Power

I started by connecting the jumpers from the custom splice connector to the 60 Amp 240-volt dual pole breaker and ground bus. The photo shows green hooked to the neutral bus. I later moved this as I did not need to tap 120-volt like I thought I would have to since the ATX power supply runs on 240-volt now. (I just forgot, it’s been a while.)

Mains Power

And here is the 240-volt quick disconnect assembly installed and ready. I will print another version of the slide lock. The slides should be solid so the splice connectors are not accessible while the wires are disconnected.

Mains Power

Next, I prepared the 2 AWG mains power feeder lines. These will connect the splice block directly to the input of the ReactorForge.

Mains PowerMains Power

The splice block side has thick metal tabs that are double layered with heat-shrink tubing. These provide a high current, high durability connection to the screw terminal that will stand up to multiple connect/disconnect cycles.

Mains Power

The Induction Heater side has heavy duty lugs that will accept the terminal post. These are also insulated with double layers heat-shrink.

Mains Power

Bringing It All Together

And here you can see the feeder lines connected to the input of terminal posts on the back of the ReactorForge. I also ran a USB extension with a small hub for connecting the Atmel ISP programmer. I put the Bluetooth dongle here as well. It communicates with the mainboard to send/receive commands and system telemetry.

Mains PowerMains Power

I then installed a variac between the mains contactor and the inverter input filter.

Mains Power Variac

When software activates the contactor, 240 volts directly feeds the inverter typically. Since I have a decent amount of testing to do, I severed that connection and installed the variac to allow lower power testing.

Mains Power

I taped up the small areas where 240 volts was accessible in the front to avoid accidental contact or tools shorting things out. Getting my fingers across 240-volt mains power is not something I want to experience twice!

Mains Power VariacMains Power

On To The CODE!

That’s it for cooling and mains power connections. The next step is to get the programming environment set back up. I will turn things up as is and do some testing to make sure everything is still good. Once that is done I will get right to the next big task, I’ve decided to port the entire thing to Arduino. This won’t be too difficult since the code is already in C and I will be glad to get away from AVR Studio, to be honest. I made the choice to move to Arduino due to is massive use and rise in popularity over the last few years. Since this is an open source project I want to use a platform that people are familiar with. Let’s put industrial level induction heaters right up there with open source 3D printer firmware!

Power Progress – 240 Volt Quick Disconnect

240V Quick Disconnect

In the photo below is my power test setup at home. Unfortunately, where my other shop is right now, I am unable to make changes like this. Here I explain what I did to get around that and make power progress!

DIY Induction Heater Power

Now that the ReactorForge is back on the bench it’s time to get it powered up!

This¬†setup isn’t necessarily something that an inspector would like to see. ¬†So don’t think this is my recommendation for a permanent solution. I’m just sharing what I did to make my current setup work. Keep in mind the breaker should always be OFF before connecting or disconnecting wires on the quick disconnect assembly.

To hook up 240 to the ReactorForge in this shop I have to run a temporary line. I don’t want to have to remove the breaker each time I do this, so I made an enclosure that mounts in a breaker slot. The assembly houses 3 Burndy splicers (PN: AMS2BAG2R). It does a few important things, it isolates them from each other, from the breaker box, and it snaps closed to prevent the lugs from sliding out (and attacking passer buys). On the side where the wires enter the assembly from the breaker, it is closed off except for holes just big enough for them, so it’s impossible for the splicers to slide out from that side. There are also ears on the front to keep the entire assembly from sliding all the way in the breaker box.

I printed a quick test in PLA, made a few changes and am ready to 3D¬†print the final version in nylon after Thanksgiving. I’m sharing all the files here in case anyone else finds it useful. Be smart, be safe.

Power progress photos:

New Shop Power Panel

My problem is that I do not want to open up the panel and remove the breaker and wires every time I need to remove the temp line.

Power progress

Fusion 360 power splice quick connect

So I drew a simple small enclosure to house some common splice blocks made by Burndy.

The prototype:


The slide lock action:

Technical Drawing:

240V Quick Disconnect Drawing v10.pdf

*Tip: I usualy try to make a technical drawing before I 3D print a part. It’s quick and easy in Fusion 360 and saves me wasted prints and time redrawing later. I always catch a lot more looking at the drawing with multiple views and mesurements than just looking at the drawing in the viewport.

You can view and download the CAD files over at Thingiverse –¬†204 Volt Quick Disconnect Splice Housing¬†

Cooling is a GO

Cooling - connected and flushed

I got the new fittings and hoses hooked up then flushed the water chiller and the induction heater. No leaks, cooling is a go!

Cooling - connected and flushed

Cooling - New metal base for cart

Before putting it back on the cart I replaced the top plastic liner with 16 gauge sheet metal that I cleaned and lightly wiped down with oil. I think I’ll go back and add a lip around 3 sides with the box break to catch any falling sparks and molten beads of metal that try to escape.

Back on the cart!

Cooling setup on cart

And here it is with cooling set up on the new cart.

Cooling setup on cart

Now to move on to power. I am making a quick disconnect near the breaker box. I will need to draw and 3D print a small enclosure for the 3/8″ dual splicers. More on that progress¬†here.

Hooking up cooling water and power

Hooking up cooling water - parts laid out

Hooking up cooling water, but first, fittings!

Hooking up cooling water - fittings

One trip the hardware store later and I’m ready to hook utilities up to the induction heater.¬†

Hooking up cooling water - parts laid out

Hooking up cooling water isn’t the only step… Power!

I also ordered a larger variac, a 5000VA 220V model to aid in testing and firmware optimization. I have a small 2000VA 120V variac but running it on such low voltage skewed a lot of the readings. The variac is nice because running full power while testing new features can a bit nerve-racking and wasteful.