This is a really cool project. I do a ton of AVR programming. They are fantastic chips.
A lot of people think because AVRs are 8-bit, they are just toys. And since ARM cortex processors are about the same price, that AVRs are not a good choice.
AVRs, like ARM Cortex, are SOCs (System On a Chip) but have really excellent peripheral devices compared to the ARM Cortex I've used. The AVR's internals are better documented, more consistent, more powerful and easier to use. The AtXmegas in particular, with their hardware event system and DMA controller.
ARMs have all the same peripherals but they are not as well thought out. However, if you need to do a lot of 32-bit math, ARM is a better option.
Edit: Note that a 32MHz atxmega AVR can do about 128k 32-bit floating-point multiplys per second.
There are ~four things that matter when developing product hardware:
Capability, cost, design and firmware: is the hardware/firmware combination capable of what you want, how much is the bill of materials, how laborious is designing the hardware (schematic and routing) and how easy and fast is it to develop on the system.
_Nothing_ so far has AVRs beat on the last aspect and they fare very well on the third also. And this is a shame, because similar development ease and LibC style is something that other vendors could very, very easily reproduce but are stuck up on forcing vendor lock-in and pushing their ever shittier IDEs on you.
However AVRs almost always lose on 1 and 2, especially compared to ARMs, which are just better in almost every way.
IDK, there's a lot I miss when working with an AVR rather than a Cortex-M, or at least compared to the 328ps that are everywhere thanks to the Arduino ecosystem. Trying to get the chips to do more than one real time task at a time can be a pain. Like the interrupts don't have reconfigurable priority, most of the code out there is built on blocking rather than asynchronous work, etc.
I think the best about the AVR controllers and other ATMEL products is that the datasheets are top-notch because they contain all necessary information to use the device/peripherals in a concise and readable style.
It is usually difficult to read the entire manual of an ARM Cortex because of the sheer volume and because the documentation tends to be split over several documents. For an AVR chip, you can easily flip through the entire datasheet.
As to how excellent and powerful the AVR peripherals are -- there are some strange peculiarities and limitations which ATMEL never addressed, for example the strange SPI/slave behaviour: http://rpc.gehennom.org/2013/09/atmega2560-as-an-spi-slave/
Author here. Nice to see this on HN again. Since the first time, the design has been validated by another hobbyist (and ported to NTSC, original composite video is PAL).
If anyone is interested, I have a NTSC patch that I've meaning to merge for a while.
I've wanted to do a project like this for a while, but always seem to have too many higher priority things going on. There's something undeniably romantic about building your own personal computer in this fashion.
- Can it be put in a very silent case but still with a fan so as to not overheat?
- Can I use another display? (With the same technical characteristics but possibly less training on the yes; having a hardware brightness/contrast controls would be a HUGE boon as well).
Murata OKI-78SR-5/1.5-W36-C. These are size and pin compatible with the classic 7805 linear regulators, but operate at around 90% efficiency and can supply up to 1.5A without needing a heatsink.
A lot of people think because AVRs are 8-bit, they are just toys. And since ARM cortex processors are about the same price, that AVRs are not a good choice.
AVRs, like ARM Cortex, are SOCs (System On a Chip) but have really excellent peripheral devices compared to the ARM Cortex I've used. The AVR's internals are better documented, more consistent, more powerful and easier to use. The AtXmegas in particular, with their hardware event system and DMA controller.
ARMs have all the same peripherals but they are not as well thought out. However, if you need to do a lot of 32-bit math, ARM is a better option.
Edit: Note that a 32MHz atxmega AVR can do about 128k 32-bit floating-point multiplys per second.