Topic: Open Source PN532 HW
I just sent off for a first batch of PN532 breakout boards that I'll publish under an open-source license -- PN532 + an integrated antenna and all the main pins broken out to 0.1" headers -- and while the range can be improved with a bit of tuning, they work well with libnfc and the pn532_uart drivers.
I'm also interested in making a stand-alone board with an ARM MCU, and was thinking about the LPC1343 (as Roel is aware, who has helped a lot with the SW) because I'm already very familiar with this chip, and it's both cheap and supports USB. I was thinking about making two different firmware versions, one that is simply a PN532 UART to USB CDC bridge with no real intermediary logic ... basically no better than a breakout board, but USB-powered rather than having to use an FTDI adapter, etc. The second firmware could actually drive the PN532 chip itself and communicate with a PC via USB HID, for example, and work independantly of a PC (a LIPO cell and charger can be added to the board for about 2-3€ extra).
I already have written all the non-NFC code required, including drivers to read/write to SD cards (FAT32), bitmap (128x64 pixel monochrome) and TFT (240x320 pixel 65K color) LCDs, etc., but it would help to know what people might be interested in with a stand-alone board? The LPC1343 has limited storage (32KB flash, 8kb SRAM), and compiling with USBHID, UART and core peripheral drivers takes 4.2KB leaving ~28KB for user code. Compiling with USB CDC (for easy 'printf' debugging) takes ~9.0K leaving 23KB for user code. It's not a problem to move to a larger chip like the LPC1754 (128KB flash), but the 1343 has a really easy to use rom-based USB bootloader that makes it painless to update the firmware and hard to brick, as well as being very cost effective ($2 for a 72MHz ARM Cortex M3 MCU).
Would 20KB be enough to implement most of the core functionality of libnfc on an embedded non-Linux device, keeping in mind that you'll need to work around any 3rd part library dependencies? libusb is a non-issue since the PN532 is using UART (though if someone adds SPI or I2C in libnfc I can use that as well), but I recall libnfc having some other dependencies.
If some of you can provide a list of some features that you'd consider mandatory, it would help to keep them in mind as I start working on the combined PN532 + ARM board. Mostly, though, I'm curious if it's realistic to build a version of libnfc for an embedded device in <20KB, and what level of interest there is in the HW.
The breakout boards in any case should be here in two weeks time, and if everything is OK I'll publish the files and probably make a small batch of them available just to recover some of the costs involved developping them. If the LP1343 is acceptable, I can make a board in a few weeks since I already have a number of proven designs for the 1343 and cheaper (non-USB) LPC1114 ... but it would help to know if 20-25KB is enough for an embedded/ARM version of libnfc (as an estimate).
Last edited by ktownsend (2010-12-21 15:41:23)