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.
The Hardware
The SIDbox is built around a single STM32H743 microcontroller running at 480 MHz. This processor manages 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 also includes external memory, dedicated display hardware, audio output, physical controls, removable storage, and several expansion connections.
PROCESSOR AND MEMORY
The external RAM is used for loading music, graphics, program data, games, and other resources while the system is running.
DISPLAY AND TOUCHSCREEN
Graphics operations are assisted by the STM32H743’s built-in DMA2D hardware accelerator. This allows common operations such as copying graphics, filling areas, processing colour data, and moving image buffers to be performed without requiring the processor to handle every individual pixel.
This helps the SIDbox maintain a responsive graphical interface while audio playback, programs, and other background tasks continue to run.
AUDIO
The TDA2822N belongs to the same amplifier family used in the Sega Game Gear. Despite its small size, it is capable of producing a surprisingly loud output.
PHYSICAL CONTROLS
STORAGE
A full-size SD card was deliberately chosen instead of a microSD card to give the SIDbox a more physical, floppy-disk-like method of loading and exchanging software.
POWER AND DATA CONNECTION
EXTERNAL CONNECTIONS
Because the joystick and mouse port shares the same six hardware input lines as the physical controls, mouse movement and the primary left button are currently supported. Support for additional mouse buttons may be considered for a future hardware revision.
Although the SIDbox uses a microcontroller rather than a traditional desktop processor, it also includes external memory, dedicated display hardware, audio output, physical controls, removable storage, and several expansion connections.
PROCESSOR AND MEMORY
- CPU: STM32H743IIT6 with an Arm Cortex-M7 processor running at 480 MHz
- Internal Flash: 2 MB, with approximately 160 KB reserved for the bootloader and SD card firmware-upgrade system
- Internal RAM: 1 MB provided by the STM32H743
- External RAM: 8 MB of 16-bit SDRAM, rated for operation at up to 133 MHz
The external RAM is used for loading music, graphics, program data, games, and other resources while the system is running.
DISPLAY AND TOUCHSCREEN
- Display: 4-inch ILI9488 LCD connected through a 16-bit parallel data bus
- Colour depth: 256 indexed colours displayed simultaneously, selected from a palette of 65,536 colours
- Touchscreen: Resistive touch panel
- Future development: Capacitive touchscreen support is currently being researched
- Graphics acceleration: STM32H743 DMA2D hardware accelerator for framebuffer copying, area filling, colour processing, and moving image data
Graphics operations are assisted by the STM32H743’s built-in DMA2D hardware accelerator. This allows common operations such as copying graphics, filling areas, processing colour data, and moving image buffers to be performed without requiring the processor to handle every individual pixel.
This helps the SIDbox maintain a responsive graphical interface while audio playback, programs, and other background tasks continue to run.
AUDIO
- DAC: Stereo audio generated using the STM32H743’s internal dual-channel 12-bit DAC
- Amplifier: TDA2822N dual-channel Class-AB audio amplifier
- Output: Capable of driving the SIDbox speaker system and an external audio output
The TDA2822N belongs to the same amplifier family used in the Sega Game Gear. Despite its small size, it is capable of producing a surprisingly loud output.
PHYSICAL CONTROLS
- Buttons: Six physical controls, normally assigned to Up, Down, Left, Right, Fire, and Fire 2
- Shared input: The physical buttons and external joystick port use the same six hardware input lines
STORAGE
- SD card: Full-size SD card formatted as FAT32
- Maximum supported capacity: 64 GB
A full-size SD card was deliberately chosen instead of a microSD card to give the SIDbox a more physical, floppy-disk-like method of loading and exchanging software.
POWER AND DATA CONNECTION
- USB-C: Used for power and charging
- USB file transfer: Experimental file-transfer support is available, although it is currently relatively slow
- UART mode: The USB-C connection can alternatively provide UART access, selectable through the SIDbox settings
EXTERNAL CONNECTIONS
- RGB port: Basic monitor output providing separate Red, Green, Blue, and Sync signals
- UART: Direct access to UART channel 1 with a programmable baud rate
- Tape output: Digital signal output designed for Commodore 64 and Sinclair Spectrum tape-loader interfaces
- Joystick and mouse port: Connection for an external joystick or a compatible Amiga or Atari ST mouse
Because the joystick and mouse port shares the same six hardware input lines as the physical controls, mouse movement and the primary left button are currently supported. Support for additional mouse buttons may be considered for a future hardware revision.
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 Six 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 six shared input lines. Pointer movement is fully supported.
- Up
- Down
- Left
- Right
- Fire
- Fire 2
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 six shared input lines. Pointer movement is fully supported.
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