I have a custom board which I have had some issues getting running, but the first one is now working fine. I do however have 4 of the same board which are locking up between 1-3 seconds after power-up. The LEDs start to flash amber, but then stop flashing (in whatever state they were last in). I am running the boards of a 24V(6A) lab power supply and have monitored the power lines on the board and they don’t move from the required volatges. Any ideas?
Forgot to say, they are imp005’s
Hi Guys, could really do with some help here. Are there any diagnostics that I can run through? Many thanks.
No, there are no diagnostics you can run. If the LED is flashing then it has booted code. Is your 32kHz crystal running?
Did we review the board schematics and layout? Generally that’s best to do before you fab boards, but send them and we’ll take a look.
No we didn’t, I am very much regretting that now. In the hardware designers guide it mentions the device configuration page. The O/S I was provided has a default for this page (set to around 25MHz), but I would like to change this to see if it has any effect. At what memory location is the configuration page stored in the flash?
If you wipe that page to blank (0xff) then it will run at default ~5MHz. However, I doubt that is the issue here because the LED has flashed - this means the entire image has been booted without error (as it’s encrypted and verified, even a single bit error will result in the device running no code at all).
Full details on the flash config page are in the imp005 hardware guide, here: https://www.electricimp.com/docs/hardware/imp/imp005_hardware_guide/
Thanks for the information, my hardware guys are going to take a closer look later today. However, it may be me, but I can’t see where it tells you where the user configuration space is located. The only reference I can find is “The 3448KB of SPI flash reserved by impOS includes space for a device configuration page; this information must be loaded into the SPI flash alongside the OS during production of devices based on imp005”, but I can’t see an actual address.
Ha, good point that detail was missed. The config page is at offset 0x35d000 in the flash image. We’ll update the docs.
A bit more progress:
I tried the slower flash and as you suggested it made no difference (other than making it boot and crash more slowly), however, it looks like the imp is actually running, but not running the device code. In the Agent code the first couple of lines are:
// At the start, print a message to say we’re online, and print the agent URL:
server.log("RELAY Web Control Agent Online: " + http.agenturl());
and the very last line is:
server.log(“Got to end of agent code”);
In the log I get :
2016-10-20 16:54:43 UTC+1 [Status] Agent restarted: reload.
2016-10-20 16:54:43 UTC+1 [Agent] RELAY Web Control Agent Online: https://agent.electricimp.com/9JkNOHj3****
2016-10-20 16:54:43 UTC+1 [Agent] Got to end of agent code
(some characters removed for security reasons)
The first line of the device code reads:
server.log (“Device Running”);
But this never gets displayed and as I say, the LED’s stop flashing (sometimes on sometimes not) and none of the device functions work, any ideas?
The agent code runs in the cloud, not in the device, so yes it’ll be running.
Did you send your schematic and board layout? I don’t think there’s much I can suggest without seeing that. Did you also check the 32kHz xtal was running?
Im the hardware designer. How can I get a schematic to you?
Is the 32Khz xtal used as a pll source?
If agent code runs from cloud then the IMP005 must from an early stage be fetching from a network source. We have not configured any WIFI access, so why is the IMP005 not making any access to the Ethernet PHY? Is there a configuration section for network access?
imp005 won’t connect either by wired or wireless until it has impCloud enrollment data (sent via BlinkUp). Then it reboots and alternates between wired and wireless until it has an active connection.
See Notes on Release 34’s Treatment of Ethernet and WiFi Interfaces
Our problem is we can not get to Blink - Up. The firmware loads then the LED’s flash then it just stops.
Email schematic etc to hugo@electricimp. 32kHz xtal is not used as PLL source, but is used by various indeterminate bits of the chip.
You must have managed to blink it up for the device to have an agent; the device won’t even appear in the IDE unless you’ve done a blinkup, as that’s what associates it with your account - as @smittytone says, this is needed either on wifi or ethernet.
Looking into this a bit more, your device was definitely working fine at one point; I can see it was last online for almost an hour (and logging things with server.log).
Last session was between 2016-10-20T14:48:35.516Z and 2016-10-20T15:34:40.208Z.
The logs we keep don’t go back a long time, but I can see it reconnecting repeatedly before then. Did you have a runtime error in your code?
(this is assuming your device is one with the mac address ending in 4044)
Yes, that particular board (which hadn’t worked previously) did start working and it did blink up, but it is still freezing 75% of the time after power up.
Sorry Hugo, actually that was the one that has always worked, I needed to get on with the software for the project, so hooked up my one working board.