Yes, regular SOP-8. The part number for this one is Winbond 25Q32FVSIG.
In thinking about it a bit more, it might have been better to run the VCC through a Schottky diode for a slight voltage drop to align a little closer to the normal operating range.
Yep, good idea. Although just moving the wire off the top to the side would probably have been enough as well.
@serisman this is beautiful. You are not using any voltage conversion or anything, just the eeprom directly to the spi pins?
This really gives me hope for the bandaid approach for putting it on a flexible circuit. If the case can close on this package then for sure it can fit over the smaller one.
Great news, that means we can just offer a package during the campaign to upgrade your existing arduboy.
It would be funny to have one tier be a kit that includes a cheap soldering iron and screwdriver.
Yes. I just directly connected the SPI flash (not an eeprom, by the way) to the spi pins. I have not yet fully tested this across all voltages levels, but it is below the absolute maximum, so it should be ok-ish. There is one note in the datasheet that seems to imply that you can read the contents across a wider voltage range than re-programming the contents, so more testing might be required. If I did it again I would probably include a diode on the vcc line to drop the max voltage down a bit.
What smaller one are you talking about? This is already a surface mount package. The only smaller one I am aware of (haven’t done much research yet) is one with BGA pins. Either way, a flexible circuit would need to be very thin. I wonder if it would be better to install the IC ‘inside’ the PCB (still trying to find a picture of what I am talking about) instead of on top?
Unless you level shift the I/O as well I would advise against having the Vcc at a lower voltage than the I/O as you would be forward biasing the crowbar protection diodes when any inputs are driven high and depending on the length of the pulse you could cause some damage to the pin.
Are you worried about the SPI flash IC, or the ATmega32u4?
The ATmega32u4 will never see levels above it’s VCC, so it should be totally ok.
For the SPI flash IC, according to the datasheet, it can take up to VCC + 0.4V on any pin, which is why I was thinking of using a schottky diode instead of a standard one. Also, the ATmega32u4 will probably output levels that are slightly less than it’s VCC. So, the question is whether it is better to run a higher VCC than the normal operating range (but still under the absolute max), or run closer to the range but have slightly higher levels on the inputs.
I meant the SPI flash IC could be damaged. Assuming 5V Vcc for the Atmega32U4 and a conservative nominal high side drop of say 0.6V then the output from the mcu would be ~4.4V. If say three small signal silicon diodes are used to drop Vcc from 5V to Vcc_flash = 3.2V for the flash chip then the inputs would be driven at ~4.4V, ie well past the spec’d Vflash_input_max=Vcc+0.4V=3.6V.
If only two diodes are used the numbers are much more reasonable with Vcc_flash=3.8V and Vflash_input_max=4.2V. Now given all this is speculative and likely wont kill the chip in practice but it’s always good to consider potential pitfalls just in case. As always though time and use will tell if there is a problem with overdriving the chip or its inputs.
But, the Arduboy doesn’t run with a 5V VCC (even when USB powered). It runs directly off of the li-ion battery voltage of 4.2V max (~3.7V nominal and ~3V min).
So, using a schottky diode (i.e. 1N5818) with a voltage drop of around 0.3-0.4V, the flash IC will see a VCC of around 3.8-3.9V max, which is closer to it’s normal operating range max of 3.6V. Without the diode, the 4.2V max battery voltage is still under the 4.6V absolute maximum value, but getting closer to the 3.6V range is probably worth it.
Actually, using a standard silicon diode (i.e. 1N4148) may work as well, because at the low current the flash IC will see, it’s voltage drop is only about 0.4-0.5V as well. But, this may put the input high levels too close to that VCC+0.4V rating.
Oops, didn’t realize the arduboy wasn’t running from a regulated rail. Yeah in that case you should be fine. In my arduboy clone I just bypassed the entire headache and ran the atmega off 3.3V so no level shifting is necessary (although it is technically overclocked for that low of an input voltage but I haven’t seen any issues in use).
@chame any news of the source code for the modified pong game ?
I am making a game hat, what to learn how to write codes for the analogue controller.
Thanks.
No worries, I figured how how to modify the program to work with the paddles now.
I want to share some observation of the potential draw back of building homemade Arduboy running at 3.3V to do away with the level shifter circuits for the 3.3V serial flash memory of the Flashcart.
You need to be careful when re-flashing the bootloader. If the conventional USBasp or using another Ardunio board as bootloader programmer is still running at 5V, it may burn the serial-flash memory. So, a modified version of USBasp (3.3V) is required, or you need to unplug the flashcart before reflashing the bootloader.
The time taken to write to the flashcart on a 3.3V homemade Arduboy (not using level shifter circuits) seems to double that of a 4.2V or 5V homemade Arduboy fitted with a level shifter circuit for the 3.3V Serial flash. I am not sure if this is due to instability of the out-of-spec use case to supply 3.3V only to the ATMega32U4 for the Arduboy, causing too many retry when writing to the flashcard that slows things down. Not sure if this can be improved by raising the voltage supplied to the Serial Flash and the ATMega32U4 a bit to 3.6/3.7V will help.
241 second is required to write an 8M game-image.bin file to the flashcart on a 3.3V homemade Arduboy without using voltage level shifter circuits.
Arduboy flash cart writer v1.12 by Mr.Blinky May-Sep. 2018
Reading flash image from file "gamesandbadapple-image.bin"
Patching image for SSD1309 displays...
Found ABP1306 at port /dev/cu.usbmodem14201
Selecting bootloader mode...
Found Arduino Leonardo at port /dev/cu.usbmodem14201
Flash cart JEDEC ID : EF4018
Flash cart Manufacturer: Winbond
Flash cart capacity : 16384 Kbyte
Writing block 2006/2006
only 141 seconds is required to write an 8M game-image.bin file to the flashcart on a 5V homemade Arduboy using voltage level shifter circuits.
Arduboy flash cart writer v1.12 by Mr.Blinky May-Sep. 2018
Reading flash image from file "gamesandbadapple-image.bin"
Patching image for SSD1309 displays...
Found Arduboy at port /dev/cu.usbmodem14201
Selecting bootloader mode...
Found Arduino Leonardo at port /dev/cu.usbmodem14201
Flash cart JEDEC ID : EF4018
Flash cart Manufacturer: Winbond
Flash cart capacity : 16384 Kbyte
Writing block 2006/2006
Done in 140.74 seconds