Tuesday, April 25, 2017

Thermal transfer paper DIY PCB test

Hi!
Some days ago I've got another pretty thing from Aliexpress: thermal transfer paper for PCB DIY.
After making some boards with 0.5mm traces with perfect quality, I decided to test capability of this paper and my printer (HP 1020). Main goal was to create home made PCB with 0.25mm traces and 0402 components =)
So here is a test board after etching in ferric chloride:


Left side: 0.33mm traces with ~0.3mm spacing. Right side: 0.25mm traces, ~0.2mm spacing, one 0603 and two 0402 components.

Let's have a close look (click for large images):



Close to perfect for home DIY! Link to Ali store if you're interested.

Sunday, April 9, 2017

MAX7219 Library for 8-bit AVR

Hi friends!
Yesterday I've got my 32x8 matrix module from Aliexpress.
I don't understand need of C++ usage in low-memory chips (most of all I'm using Attiny2313, Atmega48 and Atmega88), so I decided to write my own C library for 8-bit AVR's.

Because I have matrix module, digit mode for MAX chips was not tested.

Features:

  • Per-pixel draw
  • Simple buffer scroll function
  • String render (latin+cyrillic variable character width font included)
  • Easy to implement text scroll
  • Support for both Flash and RAM string sources

Please note: library uses alpha version of AVR SPI library based on Stefan Engelke's code (included). Software and USI SPI not tested.

Here is Atmel Studio 6.2 project:
Download from Google Drive

Wednesday, March 22, 2017

PixelImage 0.4.51

New build of my image converter for embedded projects: *0.4.51* (Windows OS)

PixelImage

New feature: *Color calculator* (RGB,HSV to RGB565 and vice versa)

What's new:

* Changed row alignment rules (read compatible with previous version).
* Removed 4-byte row alignment for flash bitmap export (padding affects RA8875 DMA compatibility).
* Added Color calculator (RGB,HSV to RGB565 and vice versa).
* Bunch of small fixes.

Download at SourceForge


Saturday, February 25, 2017

RA8875 LCD Flash share with Arduino

Hi!
For some time I have fun with 7" LCD display from Waveshare built on RAiO RA8875 controller chip. One of RA8875 great features is DMA support to load images from onboard flash chip.
Real trouble that there is no way to reprogram flash chip after soldering it to board.
Thanks to Waveshare engineers made header for dedicated flash SPI interface! There is no need to solder flash chip to display PCB, you can connect it to this header.

Idea! RA8875 does not use dedicated SPI all the time, only while DMA transfer is active. So why not share flash chip between two SPI buses: RA internal and Arduino?

There are cool IC's: 74LVC1G3157, single analog/digital SPDT switches. So, almost all time flash chip is connected to RAiO SPI, but when needed, it can be switched to Arduino's SPI bus. Switch control pins are connected to Arduino's CS pin.

Monday, February 20, 2017

Fixing Arduino Due R3 not starting bug

Arduino Due is a cool board with ATSAM3X8E microcontroller. But R3 version has a bug: on first power-up (or if power was turned off for more than ~5sec) board mostly will not start, and you have to push "Reset" button to make your sketch work.
I have two R3 boards with same issue. And it's annoying to push button every time =)
Today I've tried to use voltage control supervisor to automate power-on reset process.

We need:

  • MCP100-315 supervisor (I have some of them, another not tested)
  • 1N4148 diode (MCP100 series have totem pole reset output)

Pros. of MCP100 series: cheap, TO-92 case available, and 350ms delay before reset pin becomes high.

So here it is:
Connections
First I tried to connect Vdd pin of MCP100 to 3.3V pin. But threshold was too little and in most case board was in reset state for infinite. I think that MCP100-300 will work fine with 3.3V.

Conclusion.
I've made this fix for all two my R3 DUE's. All of them now start OK.

P.S. People say this bug was fixed in a new version: R3-E.