FAQ

From Uzebox Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Where can I buy a Uzebox?

There was a time when a few different companies or individuals were selling pre-assembled Uzeboxes but currently you will have to build your own. It's possible to build a Uzebox with a few inexpensive tools and no previous electronics experience, you just need a few (or 10) hours time and a bit of patience.

Kits containing nearly all (just not the SNES connectors) of the components required to build a Uzebox and the Uzenet adapter are available from Digikey. See this forum topic for details.

If you have a SCART TV then it might make more sense to build a Uzebox Omega instead. You can easily purchase most of the components required to build a Uzebox Omega from Farnell by downloading the Omega BOM spreadsheet from the Uzebox forum.


My power button doesn't seem to be working?

It's probably not your power switch that is broke. The Uzebox power button doesn't do anything by default, the Uzebox powers on as soon as a power adapter is connected.

Because there is no default behaviour defined for the power button, the power button operates differently for different games. It will work as expected and power off the Uzebox with some games, some games treat is as a second reset button whilst others such as IKD hijack it to trigger an in game feature.

Is there a reset button sequence which lets me return to the gameloader?

Yes. When booting or resetting the console, press any button on the first controller to start in the gameloader. You can also press START+SELECT+Y+B to perform a soft reset and return to the gameloader.

What is the recommended way to format a SD card for use with the Uzebox?

Most SD cards come pre-formatted using either FAT32 or exfat. The Uzebox doesn't currently support exfat but does offer some degree of FAT32 support. However, FAT16 is the recommended filesystem to use for formatting a SD card under Linux for the best compatibility with the Uzebox so you will very likely have to re-partition and reformat any newly purchased SD cards to use them on a Uzebox.

If you are using FAT16 then the first partition on your SD card must be no larger than 2 GB, the max partition size supported by FAT16.

  • Under Linux, you use the following command to format the SD card:
# mkfs.vfat -F 16 /dev/sdx1

Your Linux SD card device name may be of the form /dev/mmcblkxp1 if you have a more fully featured SD card device. The USB SD card readers use the SCSI-style sdx device names, as displayed by lsblk.

  • Under Windows, you can right click the card and select Format then use a 16K cluster size. The 16K cluster size option will only be available if your SD partition is less than 2GB in size.

Where can I buy Uzebox compatible controllers?

Genuine Nintendo SNES controllers are recommended for their superior build quality and slightly longer cables than most of the clone pads.

If you can't afford genuine SNES controllers, beware that not all clone SNES controllers will work with the Uzebox but Adafruit sell clone SNES pads that "work great with Fuzeboxen" which means they should work with any Uzebox. Mouser are an international reseller of Adafruit products that sell their SNES controllers. There is also the Hyperkin Scout, which may be Uzebox compatible?

Some clone SNES controllers are not fully Uzebox compatible, such as those made by TRIXES and most of the ones you can find on AliExpress. You may find these "slow" controllers work OK with the Uzebox gameloader and also with Flight of A Dragon or anything else that has patched the Uzebox kernel to support slow controllers but many older Uzebox games will be unplayable and you may experience random reboots and other issues when these controllers are connected and attempted to be used with non slow controller patched software.

How do I configure my Uzenet adapter?

You can configure your Uzenet WiFi connection using the Uzenet Setup Program or ESPSETUP.UZE.

The Uzenet Setup Program supports entering passwords via the Uzebox PS/2 keyboard adapter whereas you have to use the joypad to enter passwords with ESPSETUP.UZE.

How long does it take to build a Uzebox?

There is no definite answer to this because it depends on several factors such as your previous electronics experience, the tools you have available and your work environment. Excluding the time took to source the components, my third Uzebox (my second Omega) build took me just under ten hours to complete.

How should I pronounce Uze?

Uze is pronounced "Yooz", according to Uze.

Can I run the Uzebox from a 9V battery?

Whilst the standard, non portable Uzebox wasn't designed to be run off batteries, you might expect around five hours play using an average, fully charged 9V battery such as a Duracell Plus. A Uzebox Omega without the AD725 installed will give you an extra 30 minutes or so run time.

Is it true that Uze built a quadraphonic PC soundcard based on a i80286 when he was in college?

Yes.

What are the differences between the Uzebox AVCore and Fuzebox kits and what are the pros and cons?

Clay Cowgill's kit (AVCore module+baseboard) and Ladyada's kit (Fuzebox) are both 100% functionally equivalent and compatible with the reference design. That is, code will run and produce the exact same result. The major difference is that the AVCore is a fully assembled, surface mount design while the Fuzebox is a built-it-yourself kit. The Avcore is basically a full Uzebox on a 40-pins chip size module. It can be plugged in any project that would require an MCU and video and/or sound.

Here's some differences:

  • They both use the same Atmega644 (but in different package) and the same weighted DAC design.
  • For the RGB-to-NTSC conversion, the AVcore uses an AD723 vs. an AD725 for the Fuzebox. Although these two chips produces the exact same results, Clay preferred the AD723 because it's newer and does not require big 220uf capacitor (essential for his small module design).
  • The SD card interface is, again, 100% compatible, the AVCore uses MicroSD (again to fit on the small module) while the Fuzebox uses the regular size.
  • Both have S-VIDEO output. The AVCore implements the "Luma Trap" on the AD723 not the Fuzebox. This circuit gives less artifact and somewhat better colors on the composite video output (no difference on the S-VIDEO output).
  • Both also adds to the reference design: A pin to control the external LED, a pin to read the "soft power" switch and a pin to turn on/off the AD725/AD723.
  • The AVCore come with a single 6-pins SPI programming port, meaning you must have/buy an ISP programmer (~35$). The Fuzebox have 6 & 10 pins SPI programming ports & also an FTDI serial programming port. It ships with a cable to use the FTDI port and the mega644 pre-flashed with a 2K bootloader (required to use the FTDI).
  • Assembled vs DIY: If you know nothing about electronics and just want the thing to work, get the AVcore. If you want to build it yourself without to much hassle, get the Fuzebox. If you want to do everything yourself, build the reference design.

On the pro and cons side, the Avcore has the Luma trap but you can not replace the ATMega644. The Fuzebox allows you to replace the ATMega644 and you can also program the chip without having to buy an ISP programmer (note this has it's issues, read the bootloader thread on the forums for more).

Some reported that the sound output is a bit louder on the Fuzebox than the AVCore. Also, video quality is a bit better on the AVCore. Clay Cowgill is an electronics engineer who has been working in the field for many year (even designing video games boards!), so that may explain things.

What are the differences between the Uzebox and the Hydra system?

The main one is the general approach. The Uzebox goal was simplicity yet enough power to do great games. The Hydra on the other hand is more powerful because it uses a Parallax 8 cores MCU running at 80Mhz. That in turn comes at the cost of much more complexity (and $$$ too). The multi-threaded programming required is not trivial, and moreover you are stuck using either assembler or Parallax own 'Spin' language. The Uzebox is based on a single core micro-controller (ATMega644) that can be programmed in assembler or in plain C/C++, the most common languages out there. All development tools are open source. The Hydra is of the kind "everything and the kitchen sink": Keyboard, mouse, VGA port, etc. and that raises cost to about USD200$. The Uzebox on the other hand is more retro-minimalist to lower cost and complexity. That said, it has a SD card interface and S-Video out (the Hydra doesn't as of this writing). So it's not really competing with the Hydra. We could say that it has it's own little market that fits between the original XGS and the Hydra in terms of power and complexity.

What are the differences between the Uzebox and the Uzebox Omega?

The Uzebox Omega replaces the S-Video socket on the reference Uzebox with a 9 pin mini din socket, similar to the one used by the Sega Mega Drive 2. The Omega doesn't require the AD725 video conversion chip which makes it easier to build and even more affordable.

The Omega also has the following extra features:

  • Optional footprint for an USB to serial module on the bottom side below the SD card socket.
  • The ESP12 Wifi Chip is connected to the CPU's SPI and reset lines. With this is should be possible to flash the AVR CPU via WiFi.
  • You can use an WS2812 "Neopixel" LED instead of the normal LED and adds a connector for additional WS2812 LEDs.
  • Added mounting holes for the lightpipe, so you can screw it to the board instead of glueing. However, using any kind of glue, screws or other methods of attaching the lightpipe to the PCB shouldn't be required with the updated lightpipe .3mf model which should clip in place if you are using a 3 mm LED.

The Omega was designed to fit within the official Uzebox 3D printed enclosure from the Uzebox github repository.

You need to attach the AD725 and its required components to use composite output on a Uzebox Omega but doing so is currently untested as of February 2024. It should also be possible to get S-Video output via the mini din socket using an adapter but this is also untested.

I am using the bootloader to start games. The games however often show weird behavior or crash.

Your SD card might have poor contacts, or the wires connecting the card reader (on a home-built Uzebox) might be too long. The bootloader (currently) have no error checking, so defects will be programmed in, making the games exposing weird behaviors. Until a better bootloader is completed, you can do the following:

  • Use these test programs to verify whether the SD reading indeed malfunctions.
  • Use Harty's bootloader which communicates with the SD card at a slower rate, less prone to defects.
  • If applicable, try to shorten wires between the ATMega and the card reader, anything making it less prone to noise.
  • If possible (if you have a regular SD socket), use a regular SDSC card (not a Micro-SD one in a converter, converters might be sloppy).

I have a midi song I converted to uzebox format and am playing it with StartSong. However when the song ends it seems to just hang on the last notes forever.

Since the MIDI converter tool strips out note-off events to save space, you'll end up with "stuck" notes if your instruments don't have fade-out envelopes. Three possible solutions to this:

  • Insure all your patches include a fade-out or note cut command
  • Add notes with zero volume at the very end of the song
  • In the conversion tool, don't strip out note-off

The video signal on the S-video output exhibits a "checker board" pattern. Is that normal?

No, this is a ground problem. Ensure the S-video connector's metal casing is soldered to your ground plane.

On the Fuzebox, can I flash the new kernel to it with the USB TTL-232 cable. I don't want to try if it's only going to mess up the chip!

The kernel is not something you overwrite on the Atmega644 like a BIOS upgrade on your computer. The "kernel" is the term used to describe the libraries and core functions that makes your game alive. It is always compiled and linked with each game (the .HEX file), they can not function separately. The Fuzebox USB cable can naturally flash these as long as they are smaller than 62K. The other 2K is being used by Ladyada's USB cable bootloader. Note that you *can not* replace this bootloader or flash the SD card Gameloader/bootloader with this cable, you absolutely need an ISP programmer.

What is the optional luma trap for and what are it's benefits

Put simply, when color signals (chroma) were added to black and white (luma) television standards, the designers did it in such as a way that the new color signal would be backwards compatible with older black and white TVs. The chroma and luma signals are mixed together to form composite video. The problem is some of the signals can interfere with each other and the TV (which has to separate and decode the combined signal) can't tell sometimes which part is chroma or luma. This causes an effect commonly known as dot crawl.

The AD725 solution to this problem is to use a notch filter that "traps" the part of the luma signal that interferes with the chroma signal. If you use S-Video the luma and chroma are always kept separate and do not have this problem.

Can the Uzebox generate PAL video signal?

No. For both hardware and software reasons. The Uzebox runs at 28.63 Mhz. That is not just a random number, but is in fact the NTSC colour carrier frequency x8. It needs to be this x8 to be able to drive the AD725s x4 clock input (saving crystals/chips) and also make the pixel clock a factor of the colour carrier (which avoids the worst of dot crawl)

The PAL colour carrier is 4.43Mhz so that would mean the AVR would have to run 35.5Mhz.

The AVR is already being overclocked to 28Mhz. 8mhz over its rated speed of 20Mhz. It gets by on this overclocking barely in the DIP package (some chips fail and some need "over volting"). Even in the DFN package with good decoupling the BEST I have seen an ATMega644 overclock too was ~33Mhz.

In addition PAL uses different resolutions and timings and the whole kernel timing would have to be rewritten and games would no be compatibles between standards.

Is there an official Uzebox IRC channel or Discord server?

No, not yet.

Does the Uzebox support MIDI IN?

Yes, the Uzebox kernel has support for MIDI IN via the UART header. Older revisions of the Uzebox used to support adding an optional, dedicated MIDI IN socket but it was removed due to lack of interest. MIDI IN can be used with with apps like Uzesynth to assist writing music for Uzebox games.

Can I use an ATMega644P instead of an ATMega644A?

Whilst most of the ATMega644x series of MCUs have been tested to work to some degree with the Uzebox, users have reported issues with video output, overclocking, the bootloader and general system stability when using the 644P instead of the 644A.

How many sprites can the Uzebox handle?

For several reasons, mainly relating to the Uzebox video output being handled in software and that there are many video modes with varying capabilities, there is no definite answer to this question but D3thAdd3r had this to say:

"IMO "32-40" sprites is max....except M74 can easily do 30Hz and hit 64...then in theory at reduced color depth and resolution, SPI overlays can do "128+". M74 could hit 64 sprites in perfect scenarios, or as low as 16. Mode 3 likes...maybe 32...or as little as 8. On average scenarios, maybe it's half with proper design considerations."

What is the A/V header for?

The A/V header provides a breakout of the RGB, sync and audio signals.

"[It] was to be used by devices that could take this type of input and get the best quality possible. Like certain arcade boards and upscalers like the Framemeister." Uze

It should be possible to create a daughterboard that has one of the RGB SCART connectors on it or maybe an audio amp with headphone sockets, for example.

How does the Uzebox processor speed compare to other 8 bit platforms?

Very favorably, as far as MCU/CPU speed is concerned. See The Retro Desk's 8-bit fractal drawing benchmark thread. The fastest 8 bit computer that Matt from YT channel The Retro Desk benchmarked using his assembly mandelbrot drawing test was the Z80-based Agon Light 2 SBC, which managed to compute and draw the fractal in 1.5 seconds.

Uze recreated this same test (but in C) for the Uzebox and it computed the same size fractal pretty much dead on one second and thats with the Uzebox graphics output enabled. With graphics output disabled the Uzebox computes it in 0.08 seconds. The Commander X16 took 3.2 seconds, the NES 16.2 seconds and the C64 took 26.4 seconds to compute the same fractal using assembly code.

The Uzebox CPU even compares well to the CPUs of the 16 bit consoles. The Uzebox outperformed the SNES in this assembly addition test.