Today when I came back from work I had a nasty surprise, resulting in this overlong post:
When I wanted to deploy an update to my Bot, I got this error in Visual Studio when I tried to start or deploy the updated App.
Error Error : DEP6701 : Bootstrapping failed with unexpected error: ‘Wrong format: Separator ‘|’ is missing.’. MowBotSense
A very cryptic error, but it was easy enough to find, I found the answer be the first link that came up in the search results. as per Error : DEP6200 : Bootstrapping on the MS Forums.
Check very carefully all your power supplies. This is an known error caused by the hardware and USB supplies failing to deliver what is on the label.
And the only solution :
The only solution is to re-flash the Windows IoT on the SD Card.
least the solution was quickly found
Although actually the worst not hardware based problem you can have , an on the Raspberry Pi 2 a re-flash is not that big a deal (assuming that you have no local data on the SD card)
The possible reasons (Again according the Forum thread )
There are three answers here actually:
Bad circuit / bad application
Too low power from the power supply
Corrupt SD card
My First Thought for a couple of seconds was – It has 3A from a dedicated PowerBank ( 12000 mAH 3A+1A )
But I quickly realized what was the problem, I worked that raspberry last night, till it died on Me !
So in half an hour I had all running again (Hardest part getting physical access to the SD card 😉 )
Now is this not the first time that I have a corrupt SD card, happed to me about 3 times last month, mostly by abruptly disrupting and killing the Power Supply.
Of course we all know the general rule :
Do not Power Off without a Shutdown !
But this can be hard with a “Raspberry Pies” at times, especially when they mobile like mine, and power management can be a big issue.
Be prepared to Re-Flash !
Depending on the usage of the specific RPi It can easy happen a time that it unexpectedly goes down, the MicroSD is very vulnerable, so
No important data or data that you can not quickly restore on the MicroSD
As that is the case for me, only important thing is the Application, that I wanted update anyway, that’s where the problems started
Depending on your project this can be more or less a challenge.
Hence here some examples of issues, considerations and (partly) solutions for Power Management for a Mobile Raspberry Pi that I had and have that might help with picking the right solution for your project :
- the PowerBank has 3 indication lights but as it normally can run for 2 days or more (This RPi is only powering the SenseHat and the Webcam so a blinking last led can still be hours) and I was fully concentrated at the problems at hand, when it died on me …
- Solution for this case would have been keeping the RPi on an adapter while developing, what I mostly do .. 😉
- My PowerBanks can actually “Pass-through” power the RPies ( Charge and Power devices at the same time ) so actually providing power to the Powerbank also would have been enough, but as this is mostly not advised (or even possible) it seems to be very bad for the batteries, Hence I normally do not do that.
As for a mobile use this is a very convenient solutions
I have 3x Xtorm AL450 12.000 mAh Powerbanks (and one from Opslogix, but that one does Shutdown the USB Power Out Ports. while charging)
My Power banks CAN do “Pass thru” (Most Powerbanks do shut down while charging), but
- Is this advisable ?,
- does someone have any long time experience doing this ?
- Exactly HOW bad is this for the batteries ?
As I could not find definitive answers and the Powerbanks and Batteries are WAY MORE EXPENSIVE as the raspberries themselves !!
Hence, as there is normally no need for the RPies to keep running overnight and they can (not using them to the power for the Servos or other actuators that is )
First Week. (1 Raspberry , 1 SenseHat )
- A non-compatible WiFI Adapter, Hence only network when on cable
- No Display on connecting the HDMI cable when the RPi booted without a Monitor .
- First configuring of RPi so no computer name yet, and hard to find IP without Monitor
Just try to prevent, but it just can happen, so make sure that a Re-Flash does not hurt to much and try to
keep the MicroSD card More-or-Less reachable whenever possible.
Also not always possible, I do not hope that the raspberry powering the PicoBorg Reverse (The part driving the DC Motors) has a corrupted MicroSD anymore as that one is hard to reach ! But that one is also better protected by now but more about that later.
Building the DiddiBorg
The DC Motors are 12V Powered,
- the kit comes with a 10 x AA Battery pack for this
The Raspberry needs 5V
- The Kit comes with a battborg power converter for this
- It powers the PicoBorg Reverse
Compatibility Note ,
although I could not find a .NET library, I had to write my own library for this, but because it was using I2C and with Python examples giving the needed constants and register addresses to fill the it was relatively easy to implement in W10 IoT Core
In common is I2C not really a compatibility (Anymore that is as I2C support is only recently added to IoT Core )
So this kit is relatively safe for Raspberry W10 IoT users
- The PicoBorg Reverse powers the RPi again (as it takes the place on the RPi the BattBorg normaly takes leaving no room to place it there)
- It has an extra 1A 5V
- It does NOT allow the RPi to be Powered over the MicroUSB at the same time !
Also as my Raspberry Pi had a SenseHat already, it did also mean that, I needed a second RPi , but not a real problem as, as you might see by now that is not the cost factor anyway 😉 )
It is not on the Windows 10 IoT Core HCL List (and you still have to be careful with that )
But the SenseHat is a fun HAT to start with and in this case there is even a Nuget package :
So you can just add the Nuget Package from Visual Studio and get started !,
Also example enough on the Web as the NASA uses it is space and Kids can send their programs into space,
Hence a great board for starters, I can surly advice this board !
Although as it covers the board completely, it makes it hard to attach other stuff to your RPi, as an uSV, what brings us back again at our Story .. 🙂
When the DiddiBorg (the base of my Bot) was mostly done I noticed the next challenge in my Power Design.
Everything except the “SenseHat RPi) was Powered by the 10 hAAA Block now.
- Removing the battery pack means a shutdowns of the RPi !
- Only when the Battery pack is disconnected you can attach USB power to the RPi
- RPi hard to reach
- And the biggest one
Trying to attach the 9V connector to the Battery pack destroyed an MicroSD IoT Image 2 Times !!
Hence for my purposes a way less that ideal solution.
- I Removed the BattBorg and Powered the second RPi also with USB
- + Driving Power separate from “Compute” Power
- +++ No more MicroSD re-Flashes because of trying to attach 9V connector.
- – PowerBanks
- – USB cables
I started Looking for a solution to use a second Battery block and to be able to take one at a time out to charge and use only external (Non USB) power leaving out the relatively expensive USB cables that are hard to cleanly work away, so removing USB cables would enable a much cleaner look
Most RPi UPS solutions turned out not suitable for my scenario:
- Most boards have their own MicroUSB connector as Main power supply
- A lot are designed for using a Lipo battery for short power disturbances
- do not take 12V in
- Do have 12 V but only once and not as primary.
- Do have 2 times external , but are 2 expensive (2 x the RPi price)
Meanwhile I implemented a Middle way :
- I Settled for a StromPi (PDF) Just because I could find it short term (Not everything is so easy to find in .CH)
- So the RPi controlling the motors is powered by the 12V AND MicroUSB (On the StromPi )
- + I clear light goes on when it is running on AA (still easy to miss as your not looking at the bot)
- – Still USB cables
- — Powering of the Raspberry after a Power Down (need to disconnect Both Power Sources to prevent Red and Green blinking lights)
- ++ Both Powerbank and Battery pack can safely be removed and replaced while the RPi is running
- ++ can change
- ++ I can just leave out the AA battery pack when the Bot is not Mobile
I also have 2 PiUSV s (in the Old version)
- Because they where cheap ( < 10 CHF )..
But of course the one with the SenseHat , does not have one as their is no place and it is in a small case. 😉
So back to point one , I hoped challenges and the options shown here can help you in design
For most scenarios the default MicroUSB might be enough and most convenient, or a small adaption (LiPo USV) might be enough, for others – especially Mobile / Headless / without Network there is not always a solution, but even with mobile projects with some researches ,planning ,compromises or investments you should be able to find a fitting solution..
But then again … (c) LSL 1987
….when you thing you have your power mostly covered ..
Servos need 4.8 – 6 V
- and do not like / survive 7.2 V ( 6xAA re-chargeable block)
- Try to find a 5x AA Block ..
- They can take 1A each ! ( x6 Servos, (max 4 moving at a time))
- So my remaining BattBorg is not enough
- Servohat has an “normal” (DC 5.5 power adapter mm) plug !
- AAA re chargeable batteries are also not cheap
- 3x powerbank 1x3A 1x1A 12 A
- 10x AA 12V (12V 2700mAh each) Pack
The Servohat has now 3A from a Powerbank over a USB to DC5.5 convertor cable, put the power plug is hard to place.
It has 1 external power connector, I could give that 1.5A but not at the same time.
Still enough challenges left ..but up and running again.
And almost as important .. the Update was successful !! (Made the work till it dies on me session and resulting Re-Flash worthwhile..)
Another W10 IoT challenge sovlved !,
Mowbot can see now (Actually a bit longer, not with the Raspberry camera yet, but as MS USB one) But much more important , I can look over his shoulder (or through his eyes),
got my streaming camera preview working, (640×480) almost as fast as the local preview control on the RPi !! 😉
So I can now see where I Drive !!
Also an interesting challenge to say the least,But this post is already too long .. first vacation