DIY Project: SPC LED Box for sim rigs

DIY Project: SPC LED Box for sim rigs

The DIY project presented here is a mixture of decorative object and functional gadget. It can be controlled via SimHub and its functionality can be changed using various inserts.

Bill of Materials

In addition to a 3D printer with filament, all you need for the project is a Raspberry Pi Pico and an LED ring. Overall, the project should be realisable for 5 to 10 euros, making it another real bargain. You can find a complete overview of the materials required here:

Preis (ab)Possible source of supply*
LED-Box
Pico RP2040 (Micro-USB / USB-C)3.00€Aliexpress / Amazon
12 Bit WS2812 LED Ring1.50€Aliexpress / Amazon
Cabling / Other
Cables1.00€Aliexpress / Amazon
3M Dual Lock (optional)4.00€Aliexpress / Amazon
3D printing
Filament black~50gAliexpress / Amazon
Filament white~5gAliexpress / Amazon

The following tools and screws should also be available:

  • Screws
    • M2 x 6/8 mm (4x): For screwing on the RP2040 board.
    • M6: For mounting via sliding blocks, for example

3D Printing

The housing and inserts are produced using a 3D printer. The box is printed in one piece and is available with or without a holder for a typical 12-bit board. The printing time is around one to two hours.

The inserts are ideally printed with a printer that supports multiple filaments. If this is not possible, you can print the entire first layer in white and the rest in black instead. There are currently various start numbers, two designs for use as flag LEDs and templates for customised designs.

  • LED Box
    • With mount for 12 Bit RGB Ring
    • Without mount
  • Inserts
    • Numbers: 1 – 11, 22, 33, 55, 66 ,77 ,88 ,99
    • Flags: small, big
    • Template (0.4mm, 0.8mm)
    • Logos: SPC

Electronics / Assembly

For the wiring, only three cables need to be connected between the pins of the Pico shown in the diagram and the LED board used. Nothing more is required.

[Rp2040 VBUS]   --->   [5V  RGB Stripe] 
[RP2040 GND]    --->   [GND RGB Stripe]
[RP2040 GP28]   --->   [DIN RGB Stripe]

The LED board can then be inserted and the RP Pico screwed into place (the front screws are not used for the USB-C version). The inserts are then simply inserted and can be removed again either with a pointed object or using the cut-out in the USB port. When using the model with the holder for the 12-bit LED ring, the Pico slightly covers the LEDs on the circuit board. In this case, you can either carefully cut out the corresponding part of the Pico or choose the version of the box without the prefabricated holder. In this case, the LED board is simply glued in place and alternative versions and shapes of the WS2812B LED boards can also be used.

Important: All electronic work should only be carried out under the supervision of trained electronics engineers, no liability is accepted for errors / damage. DIY at your own risk.

Moutning

A hole for M6 screws is provided in the centre for screwing to the rig. However, the LED box can also be attached to the rig with M3 Dual Lock instead. The very low weight of less than 100 grams makes mounting extremely flexible. For example, the LED box can be attached directly to the rig or to the monitor mount.

Software

There are two different approaches to the software. Either it is controlled via SimHub, for example to display flags and other telemetry data, or the software is used as a standalone device with a defined colour.

SimHub – Dahl Design Fast DDC

Thanks to the “Fast DDC” implementation, the software side is also completed in just a few seconds. Only the following steps are required:

  • Firstly, the RP2040 is connected to the PC. A file window opens automatically during the first connection. Then press the “BOOTSEL” button on the controller while plugging it in.
  • The file B17_E4Half_LED30.uf2 must then be saved in this folder. The controller will then restart and can be used immediately.
  • The device can now be added to SimHub and profiles can be loaded:
    • Add a new device: Devices -> Add new device -> Add standard device -> Standard LED device
    • The following parameters must then be set for the device under USB PID / VID configuration:
      • VID: 0x2E8A
      • PID: 0x1053
      • LED count: 12
      • Telemetry LED limit: 70%

The LED effects can be set as usual in SimHub. To get started, an LED profile with a static colour and flag effects (deactivated by default) is available for download here.

Standalone

If no dynamic LEDs are required, a simple script can also be used. In this case, the LED box does not require a direct connection to the PC and lights up continuously in the previously selected colour. The Python IDE Thonny is used to install the code. You can find a corresponding tutorial here: https://www.youtube.com/watch?v=_ouzuI_ZPLs

import machine
import neopixel
import time

# Number of LEDs
n = 12
# Configure Pin GP28
pin = machine.Pin(28, machine.Pin.OUT)
# Create NeoPixel object
np = neopixel.NeoPixel(pin, n)

base_color = (255, 255, 255)  # White
# base_color = (255, 0, 0)      # Red
# base_color = (0, 255, 0)      # Green
# base_color = (0, 0, 255)      # Blue
# base_color = (255, 255, 0)    # Yellow
# base_color = (255, 0, 255)    # Magenta
# base_color = (0, 255, 255)    # Cyan
# base_color = (255, 165, 0)    # Orange
# base_color = (128, 0, 128)    # Purple
# base_color = (255, 192, 203)  # Pink
# base_color = (0, 128, 128)    # Teal

# Define brightness (0.0 to 1.0, e.g., 0.3 for ~30% brightness)
brightness = 0.6  # Matches your previous (75, 75, 75)

# Calculate scaled color
scaled_color = (int(base_color[0] * brightness), 
                int(base_color[1] * brightness), 
                int(base_color[2] * brightness))

# startup routine: Light up LEDs one by one with scaled color
for i in range(n):
    np[i] = scaled_color  # Set each LED to scaled color
    np.write()           # Update the strip
    time.sleep(0.1)       # Short delay for smooth effect

# Keep all LEDs on with scaled color
for i in range(n):
    np[i] = scaled_color

# Apply changes
np.write()

# Keep LEDs on indefinitely
while True:
    pass

Conclusion

For around five euros, you can create a small but decorative LED box that can also be used to display telemetry data if required. The project itself can be completed in an afternoon and requires little prior knowledge.

Leave a Reply

Your email address will not be published. Required fields are marked *