Hi there~. This is Matthew! I saw a thread explaining that the production variants of the nRF52840 will first be available Q4 2017 at this link.
I was planning for BLE RC Car mass production that uses nRF52840 in the next year 2018. This RC Car uses the USB to store user's custom data so I chose the nRF52840. Also, the car will be controlled by a mobile BLE app. The app is also used for OTA firmware upgrade.
This is my concern; I have to produce RC cars that have 40 different covering cases.
All RC cars will have the nRF52840 on it to control motors but as shown from the example images,
on top of the PCB, a red case, orange case, blue truck case will be mounted on each PCBs. Although the outer cases are different, each RC Cars will use the same battery input (4 AA batteries in series). After the RC car pairs with the BLE mobile app, the app is planned to distinguish what car cover is used.
The point is that the control part or the BLE service part of the firmware is identical, regardless of covering cases.
The problem is what trick or technique is needed to make the firmware/mobile app to distinguish what case it is using.
This is my first idea. Since I have 40 different covering cases, I have chosen 6 GPIO input pins (2^6=64 > 40) and connected them to 3V and GND.
The firmware reads the GPIO pins and sends the read value using BLE's NUS or DIS (Device Info Service, set the system id or HW revision string as the GPIO value).
However, I expect that this forces to make me take 40 times of FCC/CE certifications due to different HW connections. Even worse, if my client asks me to add extra series of covering cases, 6 GPIO pins will not be enough!
Will there be a better way to solve this problem like using CRYPTOCELL or flashing an ID into a place that is not affected by OTA firmware update?
I just want to create one Keil/SES project, not 40 or more!
Or is it not possible to create multiple projects or bypass multiple certification processes?
THANKS FOR READING THIS!