Based on this answer here in StackExchange and the Motorola article it cites, I've designed a dual h-bridge motor driver with push-pull transistors to switch the FETs faster, layed out a PCB in KiCad and built it.
The restrictions were to use only N-Channel FETs found in an old computer motherboard, and I had no gate drivers (actually I've bought a couple IR2110s, but they will take a long time to arrive).
When I tested this first version with a toy RC helicopter motor, it ran for a couple times, but eventually half of each h-bridge (there were 2 of them) got shorted (lots of smoke and all). Everything ran on 2 li-ion cells (7.4V) for VCC and a third small phone cell (3.7V) in series for a 11.1V total in Vdrive.
I used the multimeter to check and looks like IMZ1A couldn't pull the high side FETs down for some reason. Initially they could, but then they stopped working. The 2N7002s were all fine. Tried replacing both the shorted power FETs and IMZ1As for new ones, but the same problem happened again.
Tired of burning stuff, but still trying to prove the point a simple N-channel only bridge could be designed, I made this new circuit:
This one actually worked and is working till now, despite being very simple. The question is: why the first circuit didn't work? Is there anything wrong with the design?
EDIT: Acquired some waveforms for the last circuit:
This one under no load condition
And this with the motor. Measured armature resistance was about 2.2R and inductance about 240uH.