As you’ve noticed, we made several changes to the I/O pin assignments. One change was to use both of timer 0’s PWM outputs to control M1 and both of timer 2’s PWM outputs to control M2. This allows for hardware-based symmetric control of the motors. The buzzer was connected to one of timer 1’s PWM outputs.
If you download the LV-168 Test Program, you can see the device.h file I created with all of the pin assignments made in the same format as in Orangutan-lib (I used Orangutan-lib’s device.h as a starting point). You should hopefully be able to take the contents of that file, wrap it in something like #ifdef ORANGUTAN_LV168/#endif, and insert it into Orangutan-lib’s device.h. I also took the files lcd.c/lcd.h directly from Orangutan-lib and modified them to work with the LV-168. In addition, I made some minor changes to them: I altered lcd_int() and I believe I added lcd_binary(), lcd_hex(), and lcd_hex_nibble().
Lastly, feel free to incorporate all, some, or none of the test program’s buzzer.c into Orangutan-lib. buzzer.c provides a buzzer interface similar to the one you get when using the X2 (e.g. volume control, a playNote function, a playFrequency function, and interrupt-based note-duration timing so the mega168 can go off and do other things while the note plays).