Introduction: Browser Interface ATTiny Fuse Editor
This instructable is for a ATTiny fuse editor using an ESP8266 and a browser based user interface.This makes changing any of the settings controlled by the 2 fuse bytes a very simple activity.
The device has the following features.
- Web server supporting reading and writing fuse data and an editor page giving easy access to fuse options
- USB powered with internal 12V generator for high voltage programming
- Header pin interface with the 7 wires needed to connect to an ATTiny module
- Wifi network configuratio using wifiManager Access point
- Browser access to the ESP8266 SPIFFS filing system for updating web files
- OTA update of the ESP8266 firmware
Step 1: Components and Tools
- ESP-12F module
- 5V to 12V boost module
- micro USB socket with solderable connector
- 220uF Tantalum capacitor
- xc6203 3.3V LDO regulator
- MOSFET transistors 2x n channel AO3400 1 x p-channel AO3401
- Resistors 2 x 4k7 1x 100k 1x 1K 1x 1R2
- 7 pin header block
- Small piece of breadboard for support circuitry
- hook up wire
- Enclosure ( I used a 3D printed box at https://www.thingiverse.com/thing:4208709)
- Fine point soldering iron
- Wire cutters
Step 2: Electronics
The schematic shows all the power is derived from a 5V USB connection. A regulator provides 3.3V to the ESP-12F module. A small boost module produces the 12V needed for high voltage programming.
The ESP GPIO gives the 4 logic signals used in high voltage programming (clock, data in, data out and command in).
One GPIO is used to turn on and off a MOSFET transistor fed by the 12V rail via a 1K resistor. When the GPIO is high the tMOSFET is on and its drain is at 0V. When the GPIO is set low the drain rises to 12V needed to set the high voltage programming mode.
One GPIO is used to turn on and off a MOSFET 2 stage driver for the 5V supply to the ATTiny. This arrangement is used to meet the specification that when the 5V is turned on it has a fast rise time. This is not met driving the supply direct from a GPIO particularly with the 4u7 decoupling capacitor present on most ATTiny modules. A low value resistor is used to dampen the current spike caused by the rapid turn on of the MOSFET transistors. It may not be needed but is used here to avoid any glitches which could be caused by this turn on spike.
Step 3: Assembly
The picture shows the components assembled into a small enclosure. A small breadboard sits on top of the ESP-12F module and contains the 3.3V regulator and the 2 voltage drive circuits.
The 12V boost module is on the left getting its input power from the USB.
The enclosure has a slot for the 7 pin header block to allow connections to the ATTiny.
After wiring up and testing the USB and header block are secured onto the enclosure with resin glue.
Step 4: Software and Installation
The software for the fuse editor is in an Arduino sketch fuseEditorHV.ino available at https://github.com/roberttidey/fuseEditorHV
It uses a library containing basic web functions, wifi set up support, OTA updates and browser based filing system access. This is available at https://github.com/roberttidey/BaseSupport
Configuration of the software is in a header file BaseConfig.h. The 2 items to change here are passwords for the wifi set up access point and a password for OTA updates.
Compile and upload to the ESP8266 from an Arduino IDE. The IDE config should allow for an SPIFFS partion e.g using 2M/2M will aloow OTA and a large filing system. Further updates may then be done using OTA
When first run the module will not know how to connect to the local wifi so will set up a configuration AP network. Use a phone or tablet to connect to this network and then browse to 192.168.4.1. A wifi configuration screen will appear and you should select the appropriate network and enter its password. The module will reboot and connect using this password from now on. If moving to a different network or changing the network password the AP will be activated again so follow the same procedure.
When entering the main software after connecting to wifi then upload the files in the data folder by browsing to the modules ip/upload. This allow a file to be uploaded. After all the files are uploaded then further filing system access can be done using ip/edit.
If the ip/ is accessed then the index.htm is used and brings up the main fuse editor screen. This allows fuse data to be seen, edited and written. It uses ip/readFuses and ip/writeFuses to achieve this.