Stunning visuals isn’t always something you NEED in a project, but it’s often something you want! Of course, if you have a complex system that requires some UI thought, then a touchscreen can provide some of the most intuitive controls imaginable.
We’ve been playing with the display hardware from 4D Systems for the last few months, and we’re really impressed by the power and ease-of-use of their display solutions, both as a standalone microcontroller, and a tethered display with a host/slave control setup.
STANDALONE OR HOST CONTROLLED?
The powerful DIABLO16 processor inside every gen4 display isn’t restricted to display operations alone. It’s a powerful processor with the ability to stand alone as a controller when you want, or use it in conjunction with another processor such as an Arduino or Raspberry Pi. Actually, you can use it with just about any microcontroller if you think about it.
Here are some of the key features the core processor offers:
- 6 banks of 32750 bytes of flash memory for user application code and data
- 32kB of SRAM for user
- 16 x GPIO pins
- 3 x I2C channels
- 1 x dedicated SD card and 3 x configurable SPI channels
- 1 x dedicated and 3 x configurable TTL serial comm ports.
In addition, the GPIO itself provides some options, with 4 that are configurable analogue inputs, up to 6 that can be used as pin counters, up to 6 can be used for PWM, up to 10 can be used for pulse output, and 14 can be configured for quadrature encoder inputs (2 channels). Concurrent usage of all features is dependent on the availability of pins, of course.
Coupled with their range of quality touch and non-touch displays, a true powerhouse of opportunity is opened, which can’t be ignored. Whether you’re developing embedded systems for market, or tinkering with your own intelligent hardware, it’s hard not to see the power these units place at your fingertips.
One thing that stands out is the requirement for programming the displays via their proprietary Workshop 4 IDE. This might sound like a bit of a pain, but it’s really what unlocks the power of their hardware. Some displays have Arduino libraries and such, but you’re limited to more simple text and geometry, as the Arduino IDE isn’t setup to handle that sort of thing. If you’re going to investigate 4D displays then you owe it to yourself to make the effort to review and use WS4 to access the power that’s contained within.
WS4 is a free download. There is a PRO version available for US79, which opens up additional functionality. No need to pay anything right now though, you can try it for free for seven days, which is fantastic. If you do decide to buy it, you'll also get free lifetime updates so you're always up to date.
The PRO version unlocks advanced features such as the Smart Widget Editor, to create your own custom multi-layer widgets in an easy way. You also get Genie Magic, which provides you with more 4DGL power behind the ViSi Genie backend code for further refinement and optimisation. All these things expedite development, which makes it exceptionally fast to prototype and deploy!
4DGL - THE LANGUAGE OF 4D
The 4D Graphics Language (4DGL) is the language of luscious graphics and impressive colours. Okay, so maybe not - but the 4D hardware and IDE uses their own 4DGL to provide all the necessary programming to maximise the power in the displays. While it has some unique features and conventions to support the processors, the language overall is familiar and easy enough to follow, so that anyone familiar with Python or C will have no trouble picking up the convention and running with it.
The Touchscreen Function Generator project in this issue puts this theory to the test, and we create a nice user interface. Sure, we could have used some rotary knobs or something, but we’d lose much of the clean, intuitive layout that the screen offers. The whole unit is easily mounted into a 3D printed case, for a professional finish.
gen4 displays come in a variety of sizes. While they’re lightweight and sleek, they don’t feel cheap and breakable. It’s a fine balance between quality and cost, which we think 4D has nailed for this range. You can choose a display size fitting for your project and budget. The non-touch 2.4” starts at just USD35, or USD55 for the starter kit. You’ll find screens in 2.4”, 2.8”, 3.2”, 3.5”, 4.3”, 5”, and huge 7” screens. There are various combinations of non-touch, resistive touch, and capacitive touch options available, as well as sleek bezel and non-bezelled options. You really can find an option to suit your project.
The displays work from 5V so they’ll fit right in with maker projects, and come supplied with an appropriate interface board. However, the starter kits include their gen4-PA and a microSD card. The gen4-PA adaptor includes GPIO breakout, which makes them incredibly easy to integrate into your projects.
Whether you’re using the display as a slave with another microcontroller, or as a standalone unit, there’s a host of ready-expansion modules to open up even more capabilities. The MOTG (Modules On The Go) range are fully compatible with the displays and provide fantastic external communication. There’s a WiFi ESP8266 bridge, Bluetooth module, MP3 + Amplifier module, as well as RS232/RS485 for interfacing with many standardised systems.
We’re impressed with the price and performance of the gen4 displays, in enhancing our own projects, creating better user interfaces and outputs, and for so many different uses. You’ll be seeing these used more by the team here at DIYODE Magazine - but don’t take our word for it; go and check them out yourself at 4dsystems.com.au
The full range of gen4 Displays are available from 4D Systems & distributors worldwide: www.4dsystems.com.au
We have listed a small selection of the range below:
- 2.4" 320x240 Non-Touch gen4-uLCD-24D US$35
- 2.4" 320x240 Resistive Touch gen4-uLCD-24DT US$39
- 4.3" 480x272 Capacitive Touch gen4-uLCD-43DCT-CLB US$119
- 7.0" 800x480 Capacitive Touch gen4-uLCD-70DCT-CLB US$179