You know. When I first started working on this laser, I don't think that K40 Whisperer existed. It seems like a decent choice and certainly a lot less work to get things going. The M2Nano board that was on my K40 was actually physically not a bad board. It's one of the few boards I've seen that not only had reference designators in the silkscreen, but even had all of the component values too, and was soldered very nicely (compared to so many boards you find these days). So they did a decent job with it. And they even have decent documentation for it too (though entirely in Chinese, so breakout Google Translate).
What I've gone with instead is to use a Raspberry Pi 3 to run all of the main software and such on. On top of it, I have a Protoneer MegaPi HAT board, which is basically an ATmega2560 coprocessor for the RPi -- simplifies the serial connections for communications to eliminate the extra USB layer. And a RAMPS 1.4 board on top of it with DRV8825 stepper drivers. And a RepRap Full-Graphic LCD for controlling it. I added a dedicated high current capacity 5V power supply for it, because the best I can tell from the power supply specs on the laser's supply is that it wouldn't be able to run the RPi 3 stack at full capacity.
I just finished the surgery on my RPi 3 to put an external WiFi antenna on it so that WiFi will work well inside the large metal case of the laser. That is working great -- not only will it pick up my router, but I can see at least eleven routers of my neighbors! Though warning -- if you want to put an external WiFi antenna on the RPi 3, it requires some very very delicate soldering work to rotate the 0201 sized jumper!
I'm in the process of adding a motor controlled Z-axis so that it can dynamically shift things for focusing -- just trying to decide exactly what I want to do there. I bought one of the LightObject Z-axis/beds. While it's nice, I don't know that I'm going to be completely happy with that solution. I've modified the exhaust port and some things on the gantry itself and can use a larger bed than that -- on the order of 50-75mm larger in the Y-axis. And I also can't use the honeycomb mesh I got with that bed either. I am now thinking of designing a custom Z-axis. So I don't know yet.
What is interesting is that all of us using these lasers are each doing the same exact types of modifications, but with nearly as many variations of those modifications as there are people making them. And then throw machine-to-machine variation into the mix too, and it makes for an interesting environment. Several times I've found a part here on Thingiverse I wanted to use for it, and in some cases went so far as to even 3D print it, only to find that my particular laser is slightly different and so it wouldn't work as-is. Same thing just happened this week in trying to set up some line-lasers to use as positioning guides. The one I had printed needed a different main bracket than what my K40 laser has. The second solution I found, which will fit the K40 laser, will not fit the red line-lasers I have. So I spent the weekend using OpenSCAD modifying things, combining the two designs to work with mine...
Good luck with yours!