The relative new Portenta series have some impressive processors rolling out: i.mX8, STM32H7 dual core and a Renesas Cortex M33.All come with Mbed supported libraries, and its claime to be a Pro-version, but libraries are a impressive, but far from complete.
USB-c VideoThe X8 and H7 versions support High speed usb with a type-c controller. The processors support DSI video and can stream out Monitor resolution video, if you use the right usb-to-HDMI hub. Still very cool as this demo shows:
OldskoolDoom
Now Mbed / Arduino has a showcase where they ported the Doom 1995 game, via the Doom wrapper to Arduino, see source ozkl/doomgeneric: (github.com)
The showcasing Doom demo on 640x400 resolution op screen. This is some oldskool stuf :), but its not implemented with control and sound, so you see only the demo running on a 640x480 screen (leaving some rubble video visible)
USB driverproblem
As you can see in the schematic, we have Usb HS ports on the hub, as well another Usb FS port on the Portenta, so why not connect keyboard and mouse.Sounds simple, but guess: due to the Arduino_H7_Video driver that generates video over USB, the complete USB controller is not supporting any other devices.There is a remark in the source code, however me-could-not-fix.
BLE as remote.So the implementation using BLE as a remote keyboard is obvious, and this is done in this example project:
BLE is well supported and the led-example is used to re-work this into a keyboard scan-code receiver. - see schematic.
MIT App InventorFor the Smartphone I used the online tool from MIT AI to build a simple button-to-ble send application. It's supported for Android and tuned for a 1200x600 screen.
Link : https://ai2.appinventor.mit.edu/
The tool is not perfect (relative positioning of buttons is not working well), so the layout is pixel-based. The source is downloadable from my Github (as well the APK file):
Check my Github for the doom library and the BLE example. Installation is straight forward forarduino projects.I used the extra H7 uart on TX1/RX1 (serial3) for debugging, as the standard serial port is not working as a debug monitor.
Have Fun :)
Comments