Refactoring Electronics (Hardware V00K)

Side Project:

I still haven’t gotten the OLED display working.  I am beginning to question Pinouts and even if the driver IC listed by the seller(s) is correct.  At this point I can’t even tell if the device is seeing my commands. I checked the board for shorts/solder bridges and even replaced the OLED display. I still can’t get anything to show up on the display.

I think a reasonable test would be to measure current to the display and send it a power on command.  If I am sending commands correctly, I should see a change in current draw.  After that, I will try working through the commands available in the datasheet for a SSD1332 chip looking for a change in the display or the current draw.


Just like refactoring the code, It’s time to refactor the electronics design.  I checked on my feature request on the Espressif forum. Nothing new has happened.  So I am considering adding an external ADC to measure voltages.

Planning and Research:

I think 0.1 volts is an accurate enough measurement for both VPP and Vtarget.  I will look for an inexpensive ADC with at least 8 bits of resolution.  Also speed is not very important. I am also looking into the possibility of using a switching voltage regulator to control the Vpp supply.  This will require that I only have to measure the voltage while setting it up and then rely on the regulator to make the adjustments.  This means more research.

I am not satisfied with the level shifter.  It is working with the resistors.  I think I can reduce costs and make the level shifter more effective if I go with a more specific design.  I’ll use a chip that is very compatible with SPI for the SPI pins, and another kind of chip for I²C signals.  For wider busses, I’ll use a SPI port expander on an interface board between the programmer and the target.

Rather than overlap the SPI with the HSPI, I think it will be better to use the HSPI pins directly.  This reduces the number of available IO pins but makes firmware development easier.

Getting Started:

As I looked at the schematic, I realized, not using HSPI really limits the number of IO I can have.  I started looking for ways to reduce the pins I needed.  I noticed that the SPI RAM won’t help with speed much if at all,  If I limit data to the block size of the target being programmed, I can probably store it within the built in RAM.

The SPI RAM is gone!  The connections to Pins 9-14 are gone! I re-labeled pins so I know where HSPI pins are located.  I moved the analog select control to share with the Vpp drive low control line.  I tied GPIO0 to an IO pin.

Finally I put the switching voltage regulator into the design. I used a FAN5331 on my OLED breakout PCB. I used that chip with a transistor on the feedback voltage so that I can control the output voltage with the ESP-12F.(This is experimental)

I’ve uploaded the new schematic to Github. Use the hardware on GigHub link in the right column of this page to go get it.  I am looking for a tool that will view KiCad files on Github.

Have you used a chip in a way that isn’t specified?  I would love to hear about your successes and failures.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.