Comments (37)
Added PR, it would be nice to get some info from people here.
from chameleonmini-rebooted.
aha.. very interesting, the 32kb idea fits with atxmega mpu ... and a onboard extra 512kb flashmem could be possible then. If we have that extra mem, we can do some more fun things :)
from chameleonmini-rebooted.
should have that test in a neat package in order for ppl to be able to report back here their results aswell
from chameleonmini-rebooted.
Have you guys identified the SPI chip model? It seems that the inscription on it is missing.
from chameleonmini-rebooted.
@iceman1001
Making that test user-friendly and neatly packaged requires exposing FlashRead and FlashWrite
(optional) functions with uint32_t arguments, creating new terminal command for testing, maybe iterating each N pages for faster execution. To make it faster and do less strain on the flash storage it can be written in a way that it backups zero page on flash, fills it with some random data, and then tries to read all pages to find memory wraparound, restoring the page afterwards.
It may be much easier to expose 0x9F read information from flash function, i have implemented it like this:
void FlashReadInformation(void* Buffer) {
while(FlashIsBusy());
MEMORY_FLASH_PORT.OUTCLR = MEMORY_FLASH_CS;
SPITransferByte(0x9F);
SPIReadBlock(Buffer, 4);
MEMORY_FLASH_PORT.OUTSET = MEMORY_FLASH_CS;
}
Right now from results of my tests i do not have reasons to do not trust output of this function.
@bogiton
Looks like AT45DB041D from Density Code : 00100 = 4-Mbit and manufacturer code 1F
from chameleonmini-rebooted.
from chameleonmini-rebooted.
Exposing the get manufacture/device id function will do just fine. PR?
from chameleonmini-rebooted.
If this correct, the 8 slots can now have much larger memory allocations :) No need for that annoying 4k/1k solution. We can also have seperate memory for switching between type of cards.
Like also saving signature / configs, counters etc for UL/ntag styled.
from chameleonmini-rebooted.
@Skydev0h I believe that you are right. If anyone is interested this is most likely the SPI chip's orientation and pinout:
from chameleonmini-rebooted.
suggested some change
from chameleonmini-rebooted.
What, where, dont see anything...
from chameleonmini-rebooted.
look at your PR
from chameleonmini-rebooted.
Really, i dont see anything there
No comments, no change requests, no commits from maintainers. wtf?
from chameleonmini-rebooted.
Strange, refresh your browser cache? ctrl-f5?
from chameleonmini-rebooted.
Used another browser with the same result - nothing.
(I dont think github would use cache headers that incorrectly)
Maybe you unintentionally limited visibility of the comment?
from chameleonmini-rebooted.
well, it could be related to the GDPR law going on... Let me check my settings.
from chameleonmini-rebooted.
The settings looks normal. I never ran into this problem on GitHub before. that you can't see comments to your PR...
from chameleonmini-rebooted.
Same as @Skydev0h for me, I can't see your comment @iceman
from chameleonmini-rebooted.
@bogiton let me test an idea since you are a collaborater, can you see the review ?
from chameleonmini-rebooted.
plottwist, Olaf the manufacturer, said it was a 1Mbyte flashmem now that I asked. Which is a bit more than @Skydev0h 's findings. Now I'm excited, we don't have any space limits anymore. We can start adding a better memory layout for a slot. And the logging will also work!
from chameleonmini-rebooted.
btw, I just merge the PR instead. I only wanted to have a better option for when printing the manufacture/device id is not found.
from chameleonmini-rebooted.
@iceman1001 too bad i could not see the comment, but you could commit that yourself - i did not deny commits from collaborators. Anyway i do not expect that situation to ever happen - that our boards have some non-existing chip outside of dataflash specifications.
Well, i have 512 KBytes flash mem, afterwards it wraps around, so it may not be safe to expect having 1 MByte memory for everyone, now when the PR is merged we can ask ppl to test their own SPI chips with this commands and post results, they may be valuable determining the real minimum amount of memory in end-user devices.
Too bad that we cannot use SPI for storing code because of AVR's Harvard architecture, but we can use flash to store data (of course in case of realtime data like logging of RF commands it should be first cached to RAM, because writing to SPI is VERY slow - for example i had to add caching to entire MFUL data because my reader did common write-read-verify pattern, and it could not do that in time without RAM caching!)
Anyway as for the current code, 32K may actually be a problem - more strange is that near the 29K-30K it clashes with bootloader, although there is dedicated memory space for bootloader... which is strange.
from chameleonmini-rebooted.
Dunno why it couldn't be seen. Anyway, I merged it and we can go on with this piece of information.
Apparently there are different hardware revisions of RevE rebooted with different flashmemory sizes.
So yours is 512kb, I am curious on how many different ones there are.
We can also add to the GUI an option to share their findings with the press of a button :) in order to collect it faster. I don't think there is too many people who are actually using this fork. :/
I guess we would need to figure out a buffer memory for the active slot that gets save to flash memory at intervalls? or after a timeout of no use.
There is so much little info for being a opensource from the beginning. There should be lots of info from offical revE.
I belive the whole memory mapping part in current software is the most confusing part. I really don't understand the mix between a buffer array in ram or when its read from flashmemory...
from chameleonmini-rebooted.
@maxieds Now this piece of information enables logging without problem. :)
from chameleonmini-rebooted.
A bit late to the party, but I just tried out that flashinfo command:
--> SPI_FLASHINFOMY
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 5
MLC Code: 0
Product version: 0
Flash memory size: 8-Mbit (1024-KByte)
1MB flash mem! That's pretty amazing!
So, essentially, that means that when we use the FlashWrite/FlashRead functions (from Memory.c), we can access the whole space? (Didn't check if you committed any changes there).
Logging is now definitely possible. But, I think we should probably figure out when to write to the flash.
Have you measured how slow are the writes to the spi flash mem?
from chameleonmini-rebooted.
Also late to the party,
--> SPI_FLASHINFOMY
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 5
MLC Code: 0
Product version: 0
Flash memory size: 8-Mbit (1024-KByte)
from chameleonmini-rebooted.
Mine:
--> SPI_FLASHINFOMY
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 4
MLC Code: 0
Product version: 0
Flash memory size: 4-Mbit (512-KByte)
from chameleonmini-rebooted.
--> SPI_FLASHINFOMY
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 5
MLC Code: 0
Product version: 0
Flash memory size: 8-Mbit (1024-KByte)
from chameleonmini-rebooted.
me too (cheapest board from Alie****s):
SPI_FLASHINFO
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 4
MLC Code: 0
Product version: 0
Flash memory size: 4-Mbit (512-KByte)
from chameleonmini-rebooted.
@albockit Probably same as you have.
--> SPI_FLASHINFO
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 4
MLC Code: 0
Product version: 0
Flash memory size: 4-Mbit (512-KByte)
from chameleonmini-rebooted.
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 5
MLC Code: 0
Product version: 0
Flash memory size: 8-Mbit (1024-KByte)```
from chameleonmini-rebooted.
Bought at Lab401; Q1 2019.
--> SPI_FLASHINFO
101:OK WITH TEXT
Manufacturer ID: 1fh
Family code: 1
Density code: 5
MLC Code: 0
Product version: 0
Flash memory size: 8-Mbit (1024-KByte)
from chameleonmini-rebooted.
Maybe we should to a wiki page where we enter all the different memory sizes we have encounted?
@ShinHub ?
from chameleonmini-rebooted.
So far it seems that there is nearly same amount of 4 and 8 Mbit chips that are encountered.
from chameleonmini-rebooted.
@iceman1001 @Skydev0h Yeah or more preferably a page to summarize all of the hardware specs for commonly found RevE Rebooted. I had to look for SRAM, EEPROM, Flash and related sizes many times. I did however already create a page for SPI Flash reference, with links to data sheets, and to a memory management library on GitHub that may be a good source of inspiration in the future.
from chameleonmini-rebooted.
Now that was great initative! I think its time to close this one, since all is documented in the Wiki
https://github.com/iceman1001/ChameleonMini-rebooted/wiki/Reference-SPI-Memory
Maybe we should just name it Notes on SPI..
from chameleonmini-rebooted.
@iceman1001 @bogiton @Skydev0h @slurdge , I also put a hardware summary page here, please fill free to complete as I do not even really know what I wrote... :) https://github.com/iceman1001/ChameleonMini-rebooted/wiki/Hardware-summary
from chameleonmini-rebooted.
Related Issues (20)
- Reader attack mifare ultralight C HOT 5
- [FORUM] Chameleon freezing with solid light HOT 5
- [REQ] Mifare DESFire emulation support? HOT 8
- Unable to set ATQA value HOT 1
- Switch button freezes Chameleon HOT 19
- Incorrect list of supported cards HOT 1
- [FORUM] Uploading a dump on Linux using command line HOT 2
- Ultralight missing from latest releases HOT 1
- Communication between Chameleon and for example Arduino?! HOT 1
- The bootloader HOT 3
- put the bootloader on the chip HOT 1
- Chinese Chameleon Mini does not show up[BUG] HOT 2
- Sniffing All Data HOT 1
- [BUG] All Btn Long Function changed In All Slots When I Change Anyone HOT 3
- [REQ] Enter a brief description of requested enhancement/feature
- [FORUM] Please update the discord link HOT 1
- [FORUM] dfu-programmer 0.7.2 fails on linux HOT 5
- [REQ] Is it possible to implement the ability to define Chameleon Mini as a "standard" SmartCard Reader in Windows
- [BUG] Latest firmware not working on a chinese device HOT 2
- [BUG] MF_CLASSIC_DETECTION (mfkey32) keys wrong HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chameleonmini-rebooted.