Limitations of Arduino / AVR simulator in TinkerCAD - let's consolidate community knowledge

Hi Everyone

I am a tertiary teacher using tinkercad for an introductory course into microcontrollers. As my students tinker with the Arduino using C and AVR programming style, we are starting to discover several undocumented (and unexpected!) limitations.

The helpdesk has not being particularly helpful when it comes to being open about what works and what doesn't, and I have not found any reference. So, the next best thing I can think about is a community effort to aggregate any knowledge that might be out there.

So, what features of the Atmega328P (the chip at the core of the Arduino) have you tried to implement in TinkerCAD that have failed your expectations?

I will kickstart with two contributions:

1. Assembly instructions cli and sbi, which can be used to selectively clear/set a single bit in an internal register, do not work.
examples of inline Assembly syntax

asm ("sbi 0x05,0"); //set bit 0 of register at address 0x05
asm ("cbi 0x05,1"); //clear bit 1 of register at address 0x05


2. The ANALOG COMPARE feature, which is a possible interrupt source on the mega328P, does not work at all (output compare result ACO in register ACSR does not seem to change, no matter what voltages are presented at pins 6,7).
You can check out this public circuit I have put together as a test rig https://www.tinkercad.com/things/bFc3rCdOyCl


Please sign in to leave a comment.