This is a companion repository for Making Embedded Systems, 2nd Ed. by Elecia White.
- Charlieplexing on Wikpedia with Atmel demo code
- A website about Charlieplexing uses excellent animations to walk through how it works. (They also walk through the row/column method with good animations.)
- Driving Matrix LEDs: Code, explanation video. You may need a DWT instead of a TIM, see this blog post.
ST Microelectronics AN1447 Application Note for a Software Driver for 4-Multiplexed LCD with a standard ST62 controller retrieved from ST.
Working out all the pieces to make a display work is tough. Adafruit is an excellent resource for this. Their Adafruit GFX documentation explains how to draw on the screen, display bitmaps, using bitmapped fonts that are compiled into the code, and adding new fonts. The library is targeted toward Arduino but the library is in C, well organized and encapsulated, and the license is permissive. See also the Adafruit GFX Library code on github. See also how to create new fonts (and symbol libraries)
(LVGL: Light and Versatile Embedded Graphics Library)[https://github.com/lvgl] is another graphics library for embedded systems.
Some advice on [Displaying text on embedded devices)[https://allthingsembedded.com/2018/09/02/displaying-text-on-embedded-devices/] - a blog post, gives a good overview of the fonts on embedded displays. This came up because of a question about anti-aliasing in fonts which makes them look nicer. It is a technique available when you have more than two colors to make the curves on the letters look smooth.
This Aliasing and Moire patterns post describes aliasing and how it looks in images.
LCD Font and image generation:
- Adafruit font packing
- Use python: fonttools
- Dot factory turns images into code
- Segger EmWin’s Font Converter is very expensive but there is a knockoff
- Some I haven't tried but seem interesting
- Font Builder is Qt based and has open source code that shows what you need to do
Getting fonts:
- Adobe Fonts includes the Open Hans Sans
- Google Fonts
- Free Fonts & Popular Downloads for Word | FontSpace
- fntlistall · olikraus/u8g2 Wiki · GitHub Watch the licenses though! Fonts are like code, you can't use it unless it says really really free.
- STM32 Application note AN4894 EEPROM emulation techniques and software for STM32 microcontrollers (from ST) and associated code
- A good description of how a key-value or KV Store should work from the users perspective (and some code to go with it)
- Little file systems: littlefs and a list on Wikipedia of other file systems optimized for flash
Aliasing is a really big thing but easier to understand in terms of simpler signals like audio where it isn’t two dimensional. (Though even Wikipedia presents it as a visual problem.) See chapter 3 of this excellent, free, and online book The Scientist and Engineer's Guide to Digital Signal Processing By Steven W. Smith, Ph.D.
It is often very handy to output data via serial and be able to see it as though it was on an oscilloscope: Serial Oscilloscope
- Speeds and Feeds Throughput Calculator Excel sheet
If you like what's here, please consider buying the book: Making Embedded Systems, 2nd Ed. by Elecia White