Electronscape

Project updates, development logs, and news

Live status: New Site ONLINE: Content being added and being debugged.

The Sidbox

The SIDbox music player now has its own dedicated project page. This article introduces the hardware, operating system, audio capabilities, controls, and development platform, with future project updates added below.
CoderGirl

CoderGirl — The SIDbox Operating System

CoderGirl is designed around a cooperative multitasking system, allowing programs and operating-system services to share processing time without disrupting the SIDbox’s real-time hardware features.

Sound and graphics transfers are handled using the STM32H743’s dedicated DMA hardware:
  • Audio DMA
  • Graphics DMA using DMA2D

This allows the SIDbox to continue producing audio and updating graphics while CoderGirl manages programs, windows, input, and other system tasks.
A more complex interrupt-driven scheduling system was considered, but cooperative multitasking was chosen because it keeps the operating system lightweight and preserves the hardware resources and predictable timing needed by the SIDbox.
You can view the CoderGirl project here.

So what's in the Sidbox

The Hardware

The SIDbox is built around a single STM32H743 microcontroller running at 480 MHz. This processor handles the operating system, graphical interface, audio generation, music playback, input devices, storage access, and any programs or games running on the system.

Although the SIDbox uses a microcontroller rather than a traditional desktop processor, it is supported by 8 MB of external RAM connected through a 16-bit data bus. This memory is used for loading music, graphics, program data, games, and other resources while the system is running.

Display and Graphics

The SIDbox uses a 4-inch LCD capable of displaying 65,536 colours. The screen is connected using a 16-bit parallel data bus, allowing graphical data to be transferred much faster than through a basic serial display connection.

The display also includes a resistive touchscreen, allowing programs, games, and the operating system to accept direct on-screen input. This can be used for menus, controls, drawing, software interfaces, and other touch-based features.

Graphics operations are assisted by the STM32H743’s built-in DMA2D hardware accelerator. DMA2D can perform operations such as copying graphics, filling areas of the screen, processing colour data, and moving image buffers without requiring the processor to handle every individual pixel itself.

This allows the SIDbox to provide a responsive graphical interface while continuing to run audio, programs, and other background tasks.

The system interface is provided by Coder Girl, the SIDbox cooperative multitasking operating system. Coder Girl and its features are covered in more detail elsewhere.

Audio Hardware

Audio is generated using the STM32H743’s built-in dual-channel 12-bit DAC, providing stereo audio output without requiring a separate sound-generation chip.

The SIDbox audio system uses a 512-Byte circular audio buffer. This allows audio to be generated continuously while the processor prepares the next section of sound data. The audio system is also accessible through the SIDbox SDK, allowing games and programs to generate their own music, sound effects, and audio streams.

The operating system provides several software-controlled audio-processing features:
  • Three-band sound equalisation
  • Low-frequency filtering
  • Mid-range filtering
  • High-frequency filtering
  • Automatic gain control
  • Amiga-style audio filter emulation
  • KFM synthesis for generated music and sound effects
  • Programmable audio fading
  • Stereo channel blending
  • DSP stereo-widening effects

The equaliser and additional processing effects can be enabled or disabled as required. Programs can therefore use the standard SIDbox audio configuration or take direct control of the available sound-processing features through the SDK.

Controls and Joystick Support

The SIDbox has five hardware input buttons, normally arranged as:
  • Up
  • Down
  • Left
  • Right
  • Fire

These inputs are shared with the external joystick port, allowing the system to be controlled using either the built-in buttons or a compatible joystick.

The same port can also support both Amiga and Atari ST mice. Because the current hardware provides five shared input lines, only the primary left mouse button is available. Pointer movement is fully supported, while additional mouse buttons may be added in a future hardware revision.

Storage

Programs, games, music, graphics, and other files can be loaded from an SD card.

The SIDbox supports FAT32-formatted SD cards with capacities of up to 64 GB. This provides considerably more storage than the internal and external working memory, allowing large collections of music, applications, games, and system resources to be stored on a single card.

Expansion and Communication

A programmable UART serial port is available for communication with external devices, development tools, computers, microcontrollers, and other hardware.

The UART baud rate can be configured by software, with a default communication speed of 115,200 baud.

This connection can be used for debugging, data transfer, hardware expansion, development tools, or communication with custom peripherals.

More Than a Music Player

Although music playback is one of the SIDbox’s main capabilities, the hardware is not limited to playing songs.

Programs created using the SIDbox SDK can access the display, audio system, controls, storage, external RAM, serial connection, and operating-system services. This allows the SIDbox to run games, graphical demonstrations, music tools, synthesizers, utilities, and other software written specifically for the platform.

The result is a compact standalone computer and audio system built around a single high-performance microcontroller.

SIDBOX MOVING FORWARD — PROJECT UPDATES

The main introduction to the SIDbox project ends here.

From this point onward, all future SIDbox development updates, hardware changes, software progress, demonstrations, and project milestones will be added below in chronological order.
1 like

Comments 0

Comments are reviewed before they appear publicly.

No approved comments yet. Be the first to leave one.

Leave a Comment

Plain text only · maximum 3,000 characters