Impossible Graphics Power from an ATiny85!

Go To Last Post
166 posts / 0 new

Pages

Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 3

Impossible only if you are afraid to hit the bare metal with assembly programming!

Behold what an ATTiny-85 can do with a bit of old school assembly...

 

https://youtu.be/j8apFDjGUTQ

 

 

Four rotating sprites and a rolling raster bar!

All of that is coming from this...

 

 

Which can be made like this...

 

 

Here is the HEX file for the QuadBoing Demo...

 

http://atomiczombie.com/temp/Q85/Quark-85 VGA.hex

 

And the Source Code, including the Ball Demo part.

Open in VS7, compile and upload.

 

http://atomiczombie.com/temp/Q85/Quark-85 Got Balls.zip

 

Source and HEX Version Date : MAR 06 2018

 

Note that the Source Code is just Beta, as I am working on the final sound system.

The entire Core is main.s, and the user editable segment is UserCode.asm

I will explain this entire thing line by line once it is ready.

 

Sorry about the crude sound, I was just testing the Voice Mixer.

Sound is just the position of X and Y into 2 of the 4 channels for this demo.

I will be adding music playing ability very soon.

 

Did I mention that an Tiny85 has only 512 BYTES of RAM??

That's less bytes than the graphic for your mouse pointer!

 

This is just the beginning, I promise.

Much more graphical insanity to follow.

Fully commented source will be posted here as a detailed tutorial for this project soon.

 

AVR + Assembly = Untouchable!

 

Cheers!

Radical Brad

 

I Like to Build Stuff : http://www.AtomicZombie.com

Last Edited: Tue. Mar 6, 2018 - 05:37 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

+1000

 

Ross McKenzie ValuSoft Melbourne Australia

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

AtomicZombie wrote:

This is just the beginning, I promise.

Much more graphical insanity to follow.

Fully commented source will be posted here as a detailed tutorial for this project soon.

 

As always, nifty indeed.

 

Have you tried porting to newer AVRs, maybe something like ATTINY817-XMINI the low cost Eval Module.

( or the even newer ATmega4809-XPRO )

For one thing, I'm curious how they take to over-clocking...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks!

Interesting, those new parts look more line pin reduces ATMega 328's than Tinys.

I wonder why they put them in the Tiny family? Size alone?

 

Doing the VGA demo on the Tiny85 was extra challenging due to the lack of a multiplier.

I think this was part of the draw to try.

 

For me, the next AVR I like to see is would be an 8 pin XMega.

I might check out the new offerings one day though, and see what they will take.

 

Brad

 

 

Who-me wrote:

As always, nifty indeed.

 

Have you tried porting to newer AVRs, maybe something like ATTINY817-XMINI the low cost Eval Module.

( or the even newer ATmega4809-XPRO )

For one thing, I'm curious how they take to over-clocking...

I Like to Build Stuff : http://www.AtomicZombie.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AtomicZombie wrote:
For me, the next AVR I like to see is would be an 8 pin XMega.

I might check out the new offerings one day though, and see what they will take.

 

Those new tiny's have been called xtiny's by some, as they include some XMega details (but keep the Wide Vcc and lower MHz of AVR)  - ATTINY817-XMINI is just $8.88

 

8 Pin packages seem to be fading a little, with SO14 looking like the new 'small and simple' package (eg ATtiny814)

 

3V XMegas are also not so active, as the Cortex M0s instead cover the 3V supply space.

 

New Cortex parts worth a look also in SO14 are the ATSAMD series, in 8K and 16KF, with 4K RAM, 48MHz would not need overclocking ?

Last Edited: Tue. Mar 6, 2018 - 05:24 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

That demo is beyond awesome!!  Let's see some compiler try to match that!

When in the dark remember-the future looks brighter than ever.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Who-me wrote:
Those new tiny's have been called xtiny's by some, as they include some XMega details (but keep the Wide Vcc and lower MHz of AVR)
megaAVR 0-series are somewhat like XMEGA AVR D-series except 5V and 20MHz.

Who-me wrote:
ATTINY817-XMINI is just $8.88
likewise for tiny416 but it's protoboard-ready (castellated pins) or nearly breadboard-ready (solder the pins)

Who-me wrote:
8 Pin packages seem to be fading a little, ...
A future product is tiny412 in SOIC150.

Who-me wrote:
3V XMegas are also not so active, ...
yet some activity (A1U, E5)

 


http://www.microchip.com/wwwproducts/en/atmega4809 linked to http://www.microchip.com/promo/atmegaavr-family

https://www.avrfreaks.net/forum/megaavr-0-series

http://www.microchip.com/developmenttools/productdetails.aspx?partno=attiny817-xmini

http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=ATTINY416-XNANO

http://www.microchip.com/wwwproducts/en/attiny412

http://www.microchip.com/mymicrochip/Reports.aspx?type=cpn&filter=ATxmega

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Tue. Mar 6, 2018 - 01:54 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Suggest this thread be saved as a demo of the correct way to wire a breadboard!

Nice!

 

Jim

Click Link: Get Free Stock: Retire early!

share.robinhood.com/jamesc3274

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Is it all tiny85's that can run about 40 MHz ? (does it need to a new /old version etc.)

 

And 

Have anyone tried to see what the max speed is for the xtiny's ? (and since it's based in the xmega core some instructions are faster than on a tiny85)

Last Edited: Tue. Mar 6, 2018 - 03:39 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Xmegas can be overclocked very easily.   Just alter the PLL multiplication value.

In my experience they run fine.

 

Brad has overclocked regular Mega AVRs successfully.    I would expect most AVRs to work outside the official spec.

 

However,  you would be unwise to do this in a commercial product.    Especially since there are plenty of Silicon Manufacturers that have faster (and cheaper) chips than Microchip/Atmel.

 

The "XTiny" does not have a PLL.   You are stuck with a 20MHz RC.   You need an external clock if you want to go any faster.    (e.g. as in the video)

 

David.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wow, amazing project!

 

Would a base resistor on the NPN effect your audio output?

 

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It is an emitter follower. No need for a base resistor. But a small resistor would do little harm. Just reduce the output swing slightly.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Likewise by El Tangas :

in https://www.avrfreaks.net/forum/stk500-updi-working-was-enabling-xtiny-updi#comment-2347706

tiny1614 has 2KB of SRAM; next up in SRAM is mega4809 at 6KB.

Brad might be keen on tinyAVR 1-series :

  • two level (plus NMI) interrupt controller
  • 8-bit DAC (classic video game audio)
  • two ADC (joystick, volume, gains)
  • Configurable Custom Logic - D-Latch, link to USART or SPI
  • Event System
  • UPDI multi-master with CPU
  • possibly two clock domains (external pixel clock, internal 20MHz RC) though over-clock is cool!

 

http://www.microchip.com/wwwproducts/en/attiny1614

https://www.microchip.com/wwwproducts/en/ATTINY3216

http://www.microchip.com/wwwproducts/en/atmega4809

 

"Dare to be naïve." - Buckminster Fuller

Last Edited: Wed. Mar 7, 2018 - 06:32 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

first step would be does it do about 40MHz like a tiny85 or more like 60-70MHz as a xmega! (and yes external clk is given) 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'd make the 40MHz wire between the osc & pin2 as direct as possible...looks a bit zig-zag (or maybe I'm not seeing it properly)...does that affect performance?

I'd place all the video sigs right next to the chip & make the audio stuff the one further away.   Might not make a beancan worth of viewing difference...might help you pass radiated emissions!smiley

Every adjustment can be another tweak toward more awesomeness. 

When in the dark remember-the future looks brighter than ever.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sparrow2 wrote:

first step would be does it do about 40MHz like a tiny85 or more like 60-70MHz as a xmega! (and yes external clk is given) 

As being more similar spec/vcc to the 20MHz AVRs than the XMegas, 40MHz would be more expected - but newer parts may have less margin than older parts.

 

I see external clocks continue to expand, there is a nice 1.3mA  one at Digikey, 25ppm 

 

DSC6001CI2A-040.0000 Microchip MEMS OSCILLATOR, $0.71020/1k  40MHz Enable/Disable CMOS 1.71 V ~ 3.63 V ±25ppm  -40°C ~ 85°C 1.3mA (Typ)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 2

Quark-85 Demo Kube

Coming to a battery near you...