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 — 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:
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.

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.
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.
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:
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.
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:
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.
- 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.
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.
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.
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.
From this point onward, all future SIDbox development updates, hardware changes, software progress, demonstrations, and project milestones will be added below in chronological order.
Comments 0
Comments are reviewed before they appear publicly.
Leave a Comment