Game console with N2L: design, build and write

Post Reply
barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Game console with N2L: design, build and write

Post by barrbrain »

This is an extended re-post from my Introduce Yourself thread: viewtopic.php?p=379164#p379164

I have a daughter and son who both have some background in coding. The each have ideas for games they would like to create and a desire to learn how. Recently, my daughter started interrogating me on how computers are built and asked whether she could build one. After discussing with her the various scales of construction, I proposed a project to both of them: start with an idea each of the first game you would like to create and together we can choose components for a bespoke console to build and target. We selected the ODROID-N2L as a base, coupled with the ODROID-VU5A for display, input and audio output.

While waiting for the components to be delivered, I researched the state of game engines in Rust and https://bevyengine.org offered an accessible entry point. Once the components arrived and passed a brief integration test, I tested many configurations until I verified a 2d game example with Bevy v0.10.1, Panfrost drivers and Wayland.

I had some issues with the touch panel and CPU fan after upgrading to Linux 6.1, which I reported and have been resolved: viewtopic.php?p=379138#p379138

I admit I was expecting a bit much for my son to construct a case with only a 3D pen. So I ordered a CREALITY Ender-3 V3 SE 3D printer, as they appear to be the most widely distributed brand in Korea for hobbyists. We will most likely be using SBC Case Builder to model a case: viewtopic.php?p=343042

The gallery below is from our assembly party, in which I gave a demo of the device capabilities and the nominated software stack. I will update this thread as the project progresses.

Image
Touchscreen unit, single-board computer and components before assembly.

Image
Plugging in the USB dongle for Wi-Fi and Bluetooth

Image
Connecting the units with HDMI and USB-micro cables

Image
Assembly complete. Holding the units how they should mounted into a case.
Last edited by barrbrain on Wed Feb 21, 2024 2:34 pm, edited 1 time in total.

L67GS
Posts: 1226
Joined: Wed Apr 22, 2020 3:02 pm
languages_spoken: English, Jibberish, Pig Latin
ODROIDs: XU4, M1 8GB, M1S 4GB, C1+, (3) C0's, H3+, N2L 4GB, and a whole big pile of accessories, VU7A Plus,, MIPI-CSI Camera Kit, etc....
Location: Great Lakes Region, U.S.A
Has thanked: 396 times
Been thanked: 163 times
Contact:

Re: Game console with N2L: design, build and write

Post by L67GS »

I don't know what your plan is for the HDMI plug on the monitor, but I'm gearing up for a similar project and I ordered these things. They're thin and after the case and barrier blocks are removed I can solder wires right to the board. My monitor has a plug pronounced on the back so they're perfect for me. On yours, one of the 180* adapters that probably shipped with your monitor might work great with this to keep from having an HDMI cable hanging out the side.
61cLWrqDn8L._AC_SL1500_.jpg
61cLWrqDn8L._AC_SL1500_.jpg (142.48 KiB) Viewed 4778 times

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

I picked up a pair of 270° adapters that should provide a better angle for a short cable to connect the units.
벤션 HDMI 270도 M to F 연장 젠더 2p
벤션 HDMI 270도 M to F 연장 젠더 2p
Screenshot_20231221_121746.jpg (84.74 KiB) Viewed 4761 times

User avatar
tobetter
Posts: 12975
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 983 times
Been thanked: 2249 times
Contact:

Re: Game console with N2L: design, build and write

Post by tobetter »

@barrbrain, do you have estimated/expected distance between N2L and Vu5?

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

tobetter wrote:
Thu Dec 21, 2023 12:31 pm
@barrbrain, do you have estimated/expected distance between N2L and Vu5?
From the initial case model, looks to be about 77mm with a difference in depth of about 15mm.

User avatar
mctom
Posts: 3835
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polski
ODROIDs: XU4, M1, H3+, SP3, N2L, M1S
Location: Gdańsk, Poland
Has thanked: 567 times
Been thanked: 746 times
Contact:

Re: Game console with N2L: design, build and write

Post by mctom »

I thought exactly what @tobetter is thinking about, I suppose. His custom HDMI-to-HDMI connection board:
viewtopic.php?p=361969#p361969

If depth difference could be reduced to 0, perhaps a single custom vertical PCB could solve the problem of both HDMI and USB connections between N2L and the display. No cables at all.
Punk ain't no religious cult, punk means thinking for yourself!
OpenUPS
PiStackMon

User avatar
tobetter
Posts: 12975
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 983 times
Been thanked: 2249 times
Contact:

Re: Game console with N2L: design, build and write

Post by tobetter »

mctom wrote:
Fri Dec 22, 2023 9:01 pm
I thought exactly what @tobetter is thinking about, I suppose. His custom HDMI-to-HDMI connection board:
viewtopic.php?p=361969#p361969

If depth difference could be reduced to 0, perhaps a single custom vertical PCB could solve the problem of both HDMI and USB connections between N2L and the display. No cables at all.
Bingo!!
But I have to check if the display can work with my board since it does not have the patters for EDID so need to guide how to set the display resolution.

User avatar
mctom
Posts: 3835
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polski
ODROIDs: XU4, M1, H3+, SP3, N2L, M1S
Location: Gdańsk, Poland
Has thanked: 567 times
Been thanked: 746 times
Contact:

Re: Game console with N2L: design, build and write

Post by mctom »

I don't understand, your HDMI-to-HDMI PCB does not have EDID-related traces?

I think it makes sense to build a custom board, if the project budget allows that. :)

these days flexible PCBs are affordable for hobbyists. IT may be very helpful to overcome small measurement errors and depth differences. However soldering a HDMI connector by hand may be a challenge. I think there are companies that build PCBs and assemble them, for extra price.

I will be glad to offer help with kicad if needed :)
Punk ain't no religious cult, punk means thinking for yourself!
OpenUPS
PiStackMon

User avatar
tobetter
Posts: 12975
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 983 times
Been thanked: 2249 times
Contact:

Re: Game console with N2L: design, build and write

Post by tobetter »

mctom wrote:
Fri Dec 22, 2023 10:35 pm
I don't understand, your HDMI-to-HDMI PCB does not have EDID-related traces?

I think it makes sense to build a custom board, if the project budget allows that. :)
EDID is useless for my project since it is intended to transmits non-standard video signal.
The board itself it not expensive, but a bit pain to build it by hand. :)

User avatar
tobetter
Posts: 12975
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 983 times
Been thanked: 2249 times
Contact:

Re: Game console with N2L: design, build and write

Post by tobetter »

So...I can confirm that my HDMI-to-HDMI board can work with ODROID-N2L and ODROID-Vu5 when Linux kernel boots with forced display resolution, drm_kms_helper.edid_firm
ware=edid/800x480.bin video=HDMI-A-1:800x480@60e
.
20231223_003537.jpg
20231223_003537.jpg (201.13 KiB) Viewed 4683 times
I have 2 of 12mm connectors and 1 of 20mm connector, so I can send you if you want. I understand @barrbrain is in Suwon, South Korea so delivery is not a big deal. :D
20231223_003409.jpg
20231223_003409.jpg (209.91 KiB) Viewed 4683 times
The connector will fit like this with ODROID-Vu5.
20231223_003304.jpg
20231223_003304.jpg (170.88 KiB) Viewed 4683 times
Let me know what you think. :D
These users thanked the author tobetter for the post:
barrbrain (Sat Dec 23, 2023 1:04 am)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

tobetter wrote:
Sat Dec 23, 2023 12:55 am
So...I can confirm that my HDMI-to-HDMI board can work with ODROID-N2L and ODROID-Vu5 when Linux kernel boots with forced display resolution, drm_kms_helper.edid_firm
ware=edid/800x480.bin video=HDMI-A-1:800x480@60e
.
That's pretty cool and we'll definitely consider it when we revise the case design. First prints are in progress and we'll share the initial assembly.
These users thanked the author barrbrain for the post:
tobetter (Sat Dec 23, 2023 1:15 am)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

After much debate, we settled on 5mm hex for the top vent pattern. A simple grate for the side vent was the most practical to print.
Customised tray parts, first print completed.
Customised tray parts, first print completed.
cf7f91208ac917db.jpg (509.45 KiB) Viewed 4672 times
Loose assembly of the base tray. Ports well aligned
Loose assembly of the base tray. Ports well aligned
c7b4b0e4fc32b9e7.jpg (410.51 KiB) Viewed 4672 times
These users thanked the author barrbrain for the post:
tobetter (Sat Dec 23, 2023 8:49 am)

User avatar
mctom
Posts: 3835
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polski
ODROIDs: XU4, M1, H3+, SP3, N2L, M1S
Location: Gdańsk, Poland
Has thanked: 567 times
Been thanked: 746 times
Contact:

Re: Game console with N2L: design, build and write

Post by mctom »

I'm glad you like the hex pattern, it's my favorite too. Nature has proven this design in many applications.
Punk ain't no religious cult, punk means thinking for yourself!
OpenUPS
PiStackMon

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

We had to make a few modifications to the case and cables for a snug fit. Here is the first case assembly running the #BevyEngine breakout example at native resolution and refresh rate.
Fully assembled and displaying the breakout example of Bevy Engine
Fully assembled and displaying the breakout example of Bevy Engine
d94d7656794dff92.jpg (379.89 KiB) Viewed 4600 times
These users thanked the author barrbrain for the post (total 2):
mctom (Sat Dec 23, 2023 11:47 pm) • odroid (Mon Dec 25, 2023 12:49 pm)

L67GS
Posts: 1226
Joined: Wed Apr 22, 2020 3:02 pm
languages_spoken: English, Jibberish, Pig Latin
ODROIDs: XU4, M1 8GB, M1S 4GB, C1+, (3) C0's, H3+, N2L 4GB, and a whole big pile of accessories, VU7A Plus,, MIPI-CSI Camera Kit, etc....
Location: Great Lakes Region, U.S.A
Has thanked: 396 times
Been thanked: 163 times
Contact:

Re: Game console with N2L: design, build and write

Post by L67GS »

Holy cow, you got a lot done in a hurry!
My HDMI plugs I mentioned have arrived, they look much more usable and I thought they would! They're going to be very thin once the plug is desoldered from them. There's a sizable gap between them and the board on the back of my display.
IMG_20231224_152520_7.jpg
IMG_20231224_152520_7.jpg (272.21 KiB) Viewed 4548 times
IMG_20231224_152513_2.jpg
IMG_20231224_152513_2.jpg (609.45 KiB) Viewed 4548 times
IMG_20231224_152855_667.jpg
IMG_20231224_152855_667.jpg (338.83 KiB) Viewed 4548 times
IMG_20231224_153128_759.jpg
IMG_20231224_153128_759.jpg (353.96 KiB) Viewed 4548 times

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

Preview of assembly video
Preview of assembly video
VideoCapture_20231225-165539.jpg (300.17 KiB) Viewed 4526 times
Case assembly for N2L and VU5. We discover a few design defects in the process.
https://vimeo.com/897685734/62757506b0 (18 minutes)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

We finally printed the right brackets and attached the speakers.
Speakers added with brackets for game sound
Speakers added with brackets for game sound
VideoCapture_20231226-064825.jpg (213.44 KiB) Viewed 4435 times
https://youtu.be/dueqlqceiNE
Last edited by barrbrain on Tue Dec 26, 2023 6:51 am, edited 1 time in total.

User avatar
mctom
Posts: 3835
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polski
ODROIDs: XU4, M1, H3+, SP3, N2L, M1S
Location: Gdańsk, Poland
Has thanked: 567 times
Been thanked: 746 times
Contact:

Re: Game console with N2L: design, build and write

Post by mctom »

If your case design is still under development, how about making those two speakers foldable towards the screen, for protection when not in use?
Punk ain't no religious cult, punk means thinking for yourself!
OpenUPS
PiStackMon

User avatar
odroid
Site Admin
Posts: 42177
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3609 times
Been thanked: 2004 times
Contact:

Re: Game console with N2L: design, build and write

Post by odroid »

I love that classic Breakout game!
I am very interested in games developed with the Rust language and Bevy Engine.
I think it will be a more complete project if you connect a rotary potentiometer to the ADC pin of the 40pin GPIO port. ;)
These users thanked the author odroid for the post:
barrbrain (Tue Dec 26, 2023 12:00 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

Thanks to tobetter, prototyping an alternative case design now that rear-mounting is feasible. Thinking of keeping the original faceplate, adding some cutouts to the backplate and removing the bevel, and designing a tray to enclose the N2L.
Booting an unofficial Armbian build based on Linux 6.6.8 and Noble Numbat testing week edition. It wasn't too hard to inject additional KCFLAGS for the kernel, CFLAGS and CXXFLAGS for Mesa, to optimize for the target CPU.
Rear mounting the ODROID-N2L on an ODROID-VU5A case.
Rear mounting the ODROID-N2L on an ODROID-VU5A case.
8f22cafaa18bfa06.jpg (394.64 KiB) Viewed 4240 times
Booting the rear-mount prototype with an Armbian unofficial build.
Booting the rear-mount prototype with an Armbian unofficial build.
190dc0d71773995b.jpg (511.17 KiB) Viewed 4240 times
We made a prototype of the new backplate by cutting up the previous tray and joining with a 3D pen.
Using a smaller backplate enables the device to rest at an angle.
Using a smaller backplate enables the device to rest at an angle.
b0403e6ccdeebb83.jpg (503.85 KiB) Viewed 4235 times
The speakers and screen fully obscure the computer mounted behind.
The speakers and screen fully obscure the computer mounted behind.
e2954e9a66a93c23.jpg (401.56 KiB) Viewed 4235 times
These users thanked the author barrbrain for the post (total 2):
tobetter (Sat Dec 30, 2023 4:45 pm) • odroid (Sun Dec 31, 2023 9:57 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

We are in the process of translating our hand-crafted prototype to a printable model.
OpenSCAD work-in-progress redesigning the backplate
OpenSCAD work-in-progress redesigning the backplate
Odroid_Vu_Series.png (73.59 KiB) Viewed 4134 times
We eyeballed the hand design in comparison with the model, measured everything 3 times and finally started a print.
It fit perfectly first try, so the careful cross-checking paid off. That gives us some confidence for designing the next part.
Rear view of middle plate design
Rear view of middle plate design
vu5a_middle.png (59.57 KiB) Viewed 4097 times
These users thanked the author barrbrain for the post:
odroid (Mon Jan 01, 2024 4:31 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

Not confident we could get another hole-in-one with such a snug fit, I ran a quick test print of one wall of the new tray design before committing to the dimensions. Looks like we nailed it.
New tray design for rear-mounting. A low-quality print to confirm dimensions. Everything is flush except the USB port, which has extra room.
New tray design for rear-mounting. A low-quality print to confirm dimensions. Everything is flush except the USB port, which has extra room.
90c1cde9feae3308.jpg (391.99 KiB) Viewed 4078 times
These users thanked the author barrbrain for the post:
tobetter (Wed Jan 03, 2024 11:05 am)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

After 2 partial test prints, calibration with digital calipers and a long night of collaborative visual design, we have finalised the tray model. The print looks great after cleaning up fine stringing and cruft.
Exterior view of tray: rear vent is a hex grid map of Australia, top vent is a row of rounded slats and ports are positioned flush to the bottom.
Exterior view of tray: rear vent is a hex grid map of Australia, top vent is a row of rounded slats and ports are positioned flush to the bottom.
a911eda6b0c29e02.jpg (316.03 KiB) Viewed 3960 times
Inside the tray are VESA mount points, PCB supports for ODROID-N2L, and supports for mounting to the ODROID-VU5 case.
Inside the tray are VESA mount points, PCB supports for ODROID-N2L, and supports for mounting to the ODROID-VU5 case.
5c4c9d20f95be6ef.jpg (421.71 KiB) Viewed 3960 times
These users thanked the author barrbrain for the post:
tobetter (Sat Jan 06, 2024 11:23 am)

User avatar
mad_ady
Posts: 11926
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4 (HC1, HC2), C1+, C2, C4 (HC4), N1, N2, N2L, H2, H3+, Go, Go Advance, M1, M1S
Location: Bucharest, Romania
Has thanked: 662 times
Been thanked: 1253 times
Contact:

Re: Game console with N2L: design, build and write

Post by mad_ady »

Is that... Australia?
These users thanked the author mad_ady for the post:
barrbrain (Sat Jan 06, 2024 3:30 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

mad_ady wrote:
Sat Jan 06, 2024 2:56 pm
Is that... Australia?
It is, indeed. While sketching vent layouts, I noticed a certain resemblance in the negative space. I tried a simple outline and the family liked the concept. After fitting a hex vent to the VESA mount stud locations and masking it with a bitmap, my son and I spent a rather long time tweaking scales until we were satisfied with the design.
First iteration of hex vent layout
First iteration of hex vent layout
20240106_153529.png (1.48 MiB) Viewed 3944 times

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

We calibrated the new front design, branded with our initials and Z(no significance). Our first dual filament print was not clean but easily tidied up. This completes the redesign for rear-mounting the ODROID-N2L with the ODROID-VU5A. We added cutouts for mounting speaker brackets and for the speaker wires to the tray. We moved the VESA mount studs from the back to the tray, in case we need to add an attachment later. We haven't designed speaker brackets yet.

There were a few final tweaks:
  • Calibrating hole sizes so that M3 bolts slide through
  • Rotating the internal stud on the front and adding a cutout for inserting a nut
  • Trimming one of the VESA mount studs which was overlapping the fan
  • Sealing nuts inside the studs with a 3D pen
Front view of the complete design. Initials: LADZ. Full branding: LADZ Down Unda.
Front view of the complete design. Initials: LADZ. Full branding: LADZ Down Unda.
17df0a04406b2749.jpg (474.19 KiB) Viewed 3901 times
Rear view showing custom vent design and HDMI connector cover
Rear view showing custom vent design and HDMI connector cover
781fd3d2a8400e27.jpg (403.21 KiB) Viewed 3901 times
These users thanked the author barrbrain for the post (total 3):
tobetter (Sun Jan 07, 2024 12:08 am) • odroid (Mon Jan 08, 2024 9:15 am) • hominoid (Thu Jan 18, 2024 11:18 am)

User avatar
mctom
Posts: 3835
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polski
ODROIDs: XU4, M1, H3+, SP3, N2L, M1S
Location: Gdańsk, Poland
Has thanked: 567 times
Been thanked: 746 times
Contact:

Re: Game console with N2L: design, build and write

Post by mctom »

That's a beautiful case.
These users thanked the author mctom for the post:
barrbrain (Sun Jan 07, 2024 7:32 am)
Punk ain't no religious cult, punk means thinking for yourself!
OpenUPS
PiStackMon

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

We now have kiosk mode working with greetd + wlgreet +sway. However, there is a display issue where the output is vertically offset by a few rows. This is particularly frustrating because the touch input is misaligned.
Small vertical offset in display output
Small vertical offset in display output
20240109_060726.jpg (158.23 KiB) Viewed 3651 times

User avatar
tobetter
Posts: 12975
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 983 times
Been thanked: 2249 times
Contact:

Re: Game console with N2L: design, build and write

Post by tobetter »

barrbrain wrote:
Tue Jan 09, 2024 6:16 am
We now have kiosk mode working with greetd + wlgreet +sway. However, there is a display issue where the output is vertically offset by a few rows. This is particularly frustrating because the touch input is misaligned.
20240109_060726.jpg
The problem persist whe you use normal HDMI cable?
It looks like display timing is a bit incorrect, can you share EDID data you are using?

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

For whatever reason, the EDID firmware wasn't being loaded at all.
I dumped /sys/devices/platform/soc/ff900000.vpu/drm/card0/card0-HDMI-A-1/edid when connected with an HDMI cable.
I added a script at /usr/local/bin/install-edid which is just:

Code: Select all

#!/usr/bin/sh
cat /path/to/vu5a.bin > /sys/kernel/debug/dri/0/HDMI-A-1/edid_override
I added a directive to /lib/systemd/system/greetd.service to install-edid first:

Code: Select all

ExecStartPre=/usr/local/bin/install-edid
A bit hacky but it works.
These users thanked the author barrbrain for the post:
odroid (Tue Jan 09, 2024 10:28 am)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

It appears that in recent kernels, the parameter is named drm.edid_firmware, although drm_kms_helper.edid_firmware is deprecated rather than deleted. I'm considering adding a builtin EDID blob for just the native resolution, for early video init.

User avatar
tobetter
Posts: 12975
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: Many
Location: Paju, South Korea
Has thanked: 983 times
Been thanked: 2249 times
Contact:

Re: Game console with N2L: design, build and write

Post by tobetter »

barrbrain wrote:
Tue Jan 09, 2024 11:44 am
It appears that in recent kernels, the parameter is named drm.edid_firmware, although drm_kms_helper.edid_firmware is deprecated rather than deleted. I'm considering adding a builtin EDID blob for just the native resolution, for early video init.
I've tested with attached EDID binary 800x480.bin, the file must be copied into /lib/firmware/edid and added drm_kms_helper.edid_firmware=edid/800x480.bin video=HDMI-A-1:800x480@60e to kernel parameter so it loads the EDID binary at boot.

EDID:
Also you copy this to file etc/initramfs-tools/hooks/edid in the root file system and run update-initramfs -u so that the EDID binary must be copied into ramdisk and apply it at early boot. Otherwise, EDID would not be loaded.

Code: Select all

  1 #!/bin/sh
  2 PREREQ=""
  3 prereqs()
  4 {
  5     echo "$PREREQ"
  6 }
  7 
  8 case $1 in
  9 prereqs)
 10     prereqs
 11     exit 0
 12     ;;
 13 esac
 14 
 15 . /usr/share/initramfs-tools/hook-functions
 16 # Begin real processing below this line
 17 mkdir -p "${DESTDIR}/lib/firmware/edid"
 18 cp -a /lib/firmware/edid/*.bin "${DESTDIR}/lib/firmware/edid/"
 
Attachments
800x480.bin.gz
(129 Bytes) Downloaded 66 times
These users thanked the author tobetter for the post:
barrbrain (Tue Jan 09, 2024 12:45 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

tobetter wrote:
Tue Jan 09, 2024 12:31 pm
I've tested with attached EDID binary 800x480.bin, the file must be copied into /lib/firmware/edid and added drm_kms_helper.edid_firmware=edid/800x480.bin video=HDMI-A-1:800x480@60e to kernel parameter so it loads the EDID binary at boot.
There is a simple explanation for why the kernel parameter was not working for me. It is on me for rolling my own kernel.

Code: Select all

# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
All is well when booting with a new kernel.
Booting into Sway with auto-login, wvkbd virtual keyboard and foot terminal.
Booting into Sway with auto-login, wvkbd virtual keyboard and foot terminal.
11c6e0a348a77ed5.jpg (342.87 KiB) Viewed 3565 times

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

I found the u-boot code that will force an embedded EDID:
https://github.com/u-boot/u-boot/blob/v ... dmi.c#L962
Invert that condition and update the reference buffer:
https://github.com/u-boot/u-boot/blob/v ... dmi.c#L869

I will try to thread the needle that is early and persistent boot splash. Wish me luck!

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

After a very long break, I returned to my first hobby: electronics. Made a custom Micro USB cable with low profile boots. Measured up, adjusted for slicing artifacts and designed the boots in OpenSCAD.
4c3c24ba7f6a2866.jpg
4c3c24ba7f6a2866.jpg (208.96 KiB) Viewed 3204 times
15085fa7ace82c91.jpg
15085fa7ace82c91.jpg (326.27 KiB) Viewed 3204 times
These users thanked the author barrbrain for the post:
odroid (Fri Jan 12, 2024 9:19 am)

User avatar
odroid
Site Admin
Posts: 42177
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3609 times
Been thanked: 2004 times
Contact:

Re: Game console with N2L: design, build and write

Post by odroid »

This is a really interesting thread and I made it STICKY.
3D printing, modern Linux kernel adaptation, tinkering/soldering, and game software development... everything we like is included.

What's even more surprising is that a foreigner and his children are working on an amazing project in Korea, where I live. 👍👍👍
These users thanked the author odroid for the post:
barrbrain (Fri Jan 12, 2024 9:46 am)

User avatar
mad_ady
Posts: 11926
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4 (HC1, HC2), C1+, C2, C4 (HC4), N1, N2, N2L, H2, H3+, Go, Go Advance, M1, M1S
Location: Bucharest, Romania
Has thanked: 662 times
Been thanked: 1253 times
Contact:

Re: Game console with N2L: design, build and write

Post by mad_ady »

@barrbrain as a fellow parent, that sees you're having too much fun, I have to ask - how long ago have the kids lost interest and left you to tinker in peace?

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

@mad_ady The kids are still engaged but I think they would like me to step back and let them use their hands. My daughter would like to learn how I modelled the USB boots. My son is itching to start designing assets for his game concept. Our baby is impressed by the aesthetics, "Wow, cool!"
The complete scope is quite wide and covers many disciplines. They can go deeper wherever they find interest. They do give me space when I am too focused. :)

User avatar
mad_ady
Posts: 11926
Joined: Wed Jul 15, 2015 5:00 pm
languages_spoken: english
ODROIDs: XU4 (HC1, HC2), C1+, C2, C4 (HC4), N1, N2, N2L, H2, H3+, Go, Go Advance, M1, M1S
Location: Bucharest, Romania
Has thanked: 662 times
Been thanked: 1253 times
Contact:

Re: Game console with N2L: design, build and write

Post by mad_ady »

Congratulations on keeping them involved!
These users thanked the author mad_ady for the post:
barrbrain (Fri Jan 12, 2024 4:57 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

Final touches on the new design. Custom Micro USB cable for power and touch input from the display unit. Matte black lacquer on the external bolt ends and nuts. Applied a Plymouth theme with logo design by Lydia and Arthur.
Front view of console. Case bolts painted matte black. Micro USB boot is barely taller than its cable and the HDMI housing. Large LADZ logo displayed.
Front view of console. Case bolts painted matte black. Micro USB boot is barely taller than its cable and the HDMI housing. Large LADZ logo displayed.
816f9922fdf66320.jpg (323.82 KiB) Viewed 2965 times
Rear view of console. Case bolts and nuts painted matte black. Custom Micro USB cable provides a compact connection.
Rear view of console. Case bolts and nuts painted matte black. Custom Micro USB cable provides a compact connection.
bfdea6da7dbdcc68.jpg (394.75 KiB) Viewed 2965 times

User avatar
odroid
Site Admin
Posts: 42177
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English, Korean
ODROIDs: ODROID
Has thanked: 3609 times
Been thanked: 2004 times
Contact:

Re: Game console with N2L: design, build and write

Post by odroid »

It looks sturdy and practical. The mechanical design seems to be almost perfect now. Congratulations.

The math workbook for the third grade of middle school catches my eye.
I think it is difficult for your child to adapt to Korea's strange education system.
These users thanked the author odroid for the post:
barrbrain (Sun Jan 14, 2024 3:02 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

This is just a teaser, we are building out a second case as a gift to my nieces in Australia. Thanks to HardKernel for shipping the components ahead of our arrival. Anyhow, a second run means more fine improvements like dropping the USB boot tolerance by 0.2mm.
Revised USB-A boot design
Revised USB-A boot design
1705633482269.jpg (225.49 KiB) Viewed 2783 times
These users thanked the author barrbrain for the post:
odroid (Fri Jan 19, 2024 6:53 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

Compact case assembly for ODROID-N2L with ODROID-VU5A
https://vimeo.com/904883457/d6a78417e9 (18.5 minutes)

We finally iterated on speaker bracket designs for our new case. Excited to see it all coming together. Iterations of speaker bracket design: starting with 1 piece, then removing the tie. Cleaning up interface with the case and then the speakers. Tuning distance between them.
Iterations of speaker bracket design.
Iterations of speaker bracket design.
bracket-design.jpg (378.03 KiB) Viewed 2677 times
Components all laid out on the workbench, ready to assemble. Three layers of case, display, speakers, main board and fastenings.
Components all laid out on the workbench.
Components all laid out on the workbench.
pre-assembly.jpg (392.87 KiB) Viewed 2677 times
The completely assembled case. There is space between the speakers and case for hand-held operation.
The completely assembled case.
The completely assembled case.
assembled.jpg (334.52 KiB) Viewed 2677 times
These users thanked the author barrbrain for the post (total 2):
tobetter (Sun Jan 21, 2024 7:41 pm) • odroid (Mon Jan 22, 2024 9:23 am)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

This is how the speaker brackets looked before painting. The arm is mostly a 2mm vertical extrusion of a simple shape. The speaker mounts are at 60° and have a partial countersink for the nuts. The washers have a full-depth countersink for the bolts.
Speaker brackets from below-side. Partially countersunk nuts emerge below. Bolt heads are fully obscured by washers.
Speaker brackets from below-side. Partially countersunk nuts emerge below. Bolt heads are fully obscured by washers.
238a5af90143b36e.jpg (292.57 KiB) Viewed 2421 times

User avatar
rooted
Posts: 10568
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 818 times
Been thanked: 719 times
Contact:

Re: Game console with N2L: design, build and write

Post by rooted »

I like how you tilted the speakers back, makes for a wider soundstage I imagine.
These users thanked the author rooted for the post:
barrbrain (Tue Jan 23, 2024 8:52 am)

User avatar
mctom
Posts: 3835
Joined: Wed Nov 11, 2020 4:44 am
languages_spoken: english, polski
ODROIDs: XU4, M1, H3+, SP3, N2L, M1S
Location: Gdańsk, Poland
Has thanked: 567 times
Been thanked: 746 times
Contact:

Re: Game console with N2L: design, build and write

Post by mctom »

And how's the game development going?
Punk ain't no religious cult, punk means thinking for yourself!
OpenUPS
PiStackMon

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

mctom wrote:
Tue Jan 23, 2024 4:27 am
And how's the game development going?
Focusing on hardware design was a deliberate strategy while the children had limited access to screens. The plan is to support them with software design while we have a few overlapping weeks of vacation.

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

We have spent 5 sessions working together on noughts-and-crosses (tic-tac-toe) with Lydia completing most of the implementation. (300 of 460 lines)
  • Initial project template for ODROID-N2L with ODROID-VU5A (David)
  • Essence of Tic-Tac-Toe (Arthur)
  • Add Target component for hit testing (Lydia)
  • Add Turn resource to track active player (David)
  • Implement GameState (Lydia)
  • Add close button (Lydia)
  • End-game state (Lydia)
  • Render strike-through for end-game (Lydia)
  • Render for tie (Lydia)
noughts-and-crosses-win.png
noughts-and-crosses-win.png (52.52 KiB) Viewed 260 times
noughts-and-crosses-tie.png
noughts-and-crosses-tie.png (51.23 KiB) Viewed 260 times
These users thanked the author barrbrain for the post (total 2):
mctom (Wed Feb 07, 2024 10:45 pm) • odroid (Thu Feb 08, 2024 9:27 am)

User avatar
rooted
Posts: 10568
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 818 times
Been thanked: 719 times
Contact:

Re: Game console with N2L: design, build and write

Post by rooted »

I know it's rewarding to see the accomplishment on their faces as they see the project grow and work.

Good stuff.
These users thanked the author rooted for the post:
barrbrain (Mon Feb 12, 2024 6:55 pm)

barrbrain
Posts: 41
Joined: Mon Dec 18, 2023 2:11 pm
languages_spoken: english, korean
ODROIDs: XU4, N2L
Location: Suwon, Korea
Has thanked: 17 times
Been thanked: 23 times
Contact:

Re: Game console with N2L: design, build and write

Post by barrbrain »

Arthur implemented the final requirement for the game, a reset button. I compiled and installed the app on-device. A minimal system UI with wlgreet and weston provided game launch and power-off buttons. We still need to figure out how to ship updates and new games.

Before we started game development, Lydia assembled the new device for the cousins.
Admiring the second unit
Admiring the second unit
0597a94db26675ed.jpg (454.09 KiB) Viewed 150 times
These users thanked the author barrbrain for the post (total 2):
mctom (Mon Feb 12, 2024 7:50 pm) • odroid (Tue Feb 13, 2024 9:43 am)

Post Reply

Return to “Projects”

Who is online

Users browsing this forum: No registered users and 1 guest