virtual lcd display for development?

Go To Last Post
6 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Are there any AVR development environments which implement virtual input/output devices (e.g. a virtual lcd character display, virtual buttons/pots, etc.)?

The idea is that instead of connecting real hardware, the uC would control virtual hardware implemented on the host PC. Control messages could be sent/received, for instance, via the serial port.

The key to making it work is crafting the software libraries on the uC side so that it is easy to switch between controlling real vs. virtual hardware.

I am especially interested in something that works under Linux. Extra bonus points if it is also compatible with the Arduino libraries.

Thanks!

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

Yes, but I consider such stuff largely pointless.

Simulators lie. The real hardware doesn't.

If you are afraid of real hardware you're probably in the wrong business.

Stealing Proteus doesn't make you an engineer.

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

I'm not afraid of the real hardware. It would be useful for prototyping, to save on I/O pins, demonstration and teaching purposes, etc.

Just to be clear - I don't want the PC to simulate the entire system. It would only handle some simple display/input devices like an LCD, status leds, input switches, etc. In my case the uC would still be controlling the servos and steppers, reading from the quadrature encoders, etc.

Whatever you're aware of I'd be interested in knowing about.

Thanks,
cm

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

Quote:

It would be useful for prototyping, to save on I/O pins, demonstration and teaching purposes, etc.

OK, tell me how it saves I/O pins?

Anyway, do your app as if it had "remote display" capability. Then you build "display buffers" (I usually use one for each line), and maybe "line dirty" flags, and/or update a character or line or dirty line on a periodic basis.

Now, you have the display buffers that reflect what is actually on the display. A simple monitor can then request the contents of line1, etc. on a periodic basis.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

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

http://www.virtualbreadboard.net/ might be something for you. It is an development environment in which you can switch (seemless?) between 100% emulation on a PC and real hardware. There are also a bunch of hardware modules, called "tektiles" available which can also be used in the software emulation before any hardware development starts.

This project started with PIC's and a Java subset as programming language, but it is under heavy development and support for AVR's has been added some time ago.

Doing magic with a USD 7 Logic Analyser: https://www.avrfreaks.net/comment/2421756#comment-2421756

Bunch of old projects with AVR's: http://www.hoevendesign.com

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

As well as (the excellent) VBB that Paul mentions the other "free" ways to get a virtual/simulated LCD are:

2) add Hapsim to AVR Studio simulator V1

3) VMLab

If you have £295 to spare there's also:

4) Labcenter "Proteus"