My company plans to use the MKRNB1500 in one of our products, and as such we will need to perform the firmware upgrade on every new modem. I understand that there is some frustration among the community concerning which party should be responsible for this, but this post is not going to discuss that. Instead, I am looking into a solution for making it easier for the DIYers to upgrade their device(s).
I'm working on designing a programming socket/cradle that will hold an NB1500 for programming. Pogo pins will make contact with the four modem USB test pads, which will then be broken out to a simple USB header. This will allow flashing firmware to the modem without needing to solder a cable to each device.
If anyone has any suggestions or additional features that would be useful for this device, feel free to leave a comment.
I had to recently update firmware on a couple of my own MKRNB1500s, the soldering wasn't terrible, but having a cradle like this would be really great. I considered trying to build my own, but for only a couple units it wasn't worth the effort. However, if my project proves to be successful, I may have the need to do this on dozens of units or more (hopefully).
I can't think of any other features, but I do have a couple of questions. How will the board be held in place on the cradle? How will we be able to get one of these? Are you planning to sell them or make plans available to 3d print/diy? I'm definitely really interested! Definitely keep us updated.
How will the board be held in place on the cradle?
There are a couple of options I can think of for this:
Two 14-pos receptacles for the headers on the MKRNB to plug into (like a shield would). The mating connection force would keep the pogo pins in contact with the board.
Four spacers/standoffs that locate into the mounting holes of the MKRNB. These would be set to a controlled height to make sure the pogo pins have appropriate contact. If they are threaded standoffs, could use a couple of nuts to hold the boards during programming.
Could do some 3D printed fixture to locate & hold the board, but I think that over-complicates it
How will we be able to get one of these?
The company I work for has expressed interest in selling them, so I think that will at least be an option. I'd like it to be open source, but that will be up to my company.
Thanks for the interest. The more interest/attention this gets, the more influence I will have to make it happen.
Only USB D- and USB D is needed, these two pins are easy to solder
The tough solder +5V is not neccesary
The GND is not neccesary
So long, what about a simple USB cable with with two pins to plug in +5 and GND at the board and two pretinned cables? I'll try the next time.
Firmware upgrades with possible unstable connections (just press a header on a oxydized contact) doesn't sound very wise to me.
I bet i'm also faster to solder two cables on N$12 and N$9 and pin two more then bring the board into the fixture and press the construction, pray for connection etc.
Thanks for your input to this discussion! I am also pretty good with a soldering iron, so soldering the two cables is not a difficult task for me either, but it may be for some people.
Regarding unstable connections, that is the biggest concern that I will be focused on mitigating while prototyping this design. "Pogo pins" are specially designed for this application (automated test fixtures, programming, debugging). The ones that I am looking at using are gold plated, which should help prevent/reduce oxidation. As far as "praying for connection", I'll be using the four mounting holes in the MKR NB PCB to locate the board on the fixture. Height will likely be fixed using spacers, which will ensure that the pogo pins are properly depressed.
In addition to the idea of securing the board to the spacers using nuts, I've gotten another suggestion to simply use a rubber band around the test fixture and the device. I'll be prototyping the design and making changes where necessary, so the concerns you've addressed here should hopefully be resolved through that R&D. I'll keep this thread posted with my progress.
For my company's purposes, this device should make it easier for technicians without soldering experience (or steady hands) to perform this firmware upgrade. In an ideal world, the devices we order from Arduino would come with the latest firmware preloaded, rendering this obsolete (which would be fine with me).
On a general note- I have nearly finished the first prototype design. Hopefully I will get the boards & parts ordered by the end of the week. I expect the design to go through a couple of revisions before it is polished (just how these things typically go). Once I have tested a working design, I am happy to share the files for anyone who wants to build one themselves. My company does still plan on selling them, but I don't know the particulars yet. Thanks for the interest.
I see. I think it should work with pogo pins with N$12 and N$9. I won't blame Arduino for the outdated firmware, every Windows PC out of the box needs tons of updates, nobody worries.
It's a shame that the ublox software has no xmodem support on their software which would make a firmware upgrade via serialSARA possible. PS: Talking of industrial devices, if someone is intersted, i developed a Arduino MKR general shield with Display, LS, DC supply etc. check out mkrshield.com
I have received the PCBs and parts for the first revision (PCBs arrived yesterday). I need to test USB comms next, but so far it looks promising. I plan to have that tested by the end of the week. I will update here as I go.
Update: two new MKR NB1500 devices arrived today, and I was able to test programming one of them using this custom PCB.
The new device was on firmware version 5.06A02.01, so I followed the steps in the other thread to upgrade it to version 5.08A02.04. The custom PCB is not needed for this.
I then used my custom PCB to upgrade the firmware to version 5.12A02.19. After a couple of hardware modifications to my custom PCB, I was able to perform the upgrade. I found it much easier than the other method. I've written a detailed guide for using my custom PCB, but I'll give the outline here so you can compare.
Upload SerialSARAPassthrough onto the MKR NB 1500
Install drivers & prepare firmware files
Plug device into custom PCB
Plug custom PCB into computer using USB
Run EasyFlash, install firmware
Once firmware is done, verify upgrade using SerialSARAPassthrough/Serial Monitor
That's it! No confusing switching between USB cables in between steps, switching things on and off, or bridging pins at the right time. Also, no soldering at all necessary on the MKR NB 1500 (not even bridging pads). This is great, since it means the firmware can be upgraded right out of the box.
I'm going to test programming the second device on Monday using the same guide to verify, but so far this is looking promising!
Our company recently bought a couple of the MKR1500 boards, but they all came with the old firmware and the intermittent connection issues. Are these boards available for order yet, perhaps with quick-guide to follow? Saw your post in this thread where it seems you managed to successfully update the board without much hassle.