We are the (hardware) engineers behind the Photon; Ask us Anything!

Assuming no budget, revenue, marketing or time contraints etc…and you were allowed to add one additional feature into the Photon…

…What would it be and why?

Ok, this seems to be more not technical, so:
Has anyone coded the “stamp”, thumbnail processor, in about 1995? I did.

Yes that sounds about right. This is a latching relay, I would go with the dual coil type:
http://www.nec-tokin.com/english/product/pdf_dl/mini_data/relay_ec2_ee2_e.pdf

From my past use of these in the medical industry, they required a short 35ms pulse applied to the SET or RESET coil. YMMV.

1 Like

Work well with low power solar panel systems.
Probably turn the power hungry Wifi on about once an hour, or a day, and upon hitting the reset button.

I think I might add on-board charging for mobile projects. Battery Shield + Photon would be awesome. That, or just make it a powerhouse of a wireless dev board–throw some bluetooth, mesh networking, and cellular on there…

…then maybe beef up the processor, add a touch screen, put some apps on there…wait a minute…

1 Like

Weirdest thing I’ve done is this (a super convoluted way to toggle a pin):

Most impressive is all of the Kickstarter campaigns that have powered by Particle products that are popping up lately, and getting funded!

Are you kin to Tesla ?

OTA Breakpoints, Step and Repeat. Debugging is hard, let’s make it easier!

1 Like

I think one of my most unusual applications, was to try to check a cable(wire) to see where it was broken. It is pretty easy to check a cable, to see if the wires are shorted, or open. But to try to determine on 100 foot wire, about where it is open???

I always wanted to check out the BASIC Stamp, because I started programming on a Tandy Color Computer 3 from Radio Shack, in BASIC. I couldn’t afford to have the 5-1/4" dual floppy disk drive ($299) and didn’t even have the $30 tape recorder to save programs. I would type in hundreds of lines of code just to play a game on the TV, then my mom would have me shut it off and come to dinner and I’d loose everything. I did program a Turtle OS robot in 1995 though, as part of one of my high school electronics classes. I jumped straight into assembly language with Motorola and PIC microcontrollers soon after that.

The microcontroller on the Photon really puts these old MCU’s to shame though. The amount of peripherals and horsepower and ease of programming for hardly any cost is incredible! To be a kid again with this technology would be amazing.

Do you like baggy pants?

1 Like

I love me some baggy pants, but fortunately I have never received any! Always lock your computer when you walk away from it :wink:


And that’s about all I can say about that! Mohit or Will can elaborate if they have tales of baggy pants.

How accurate is the 120MHz system clock on Photon…in +/- ppm ?

Looking back. I first coded on a processor that I had to build (lots of soldering). The Mark-8 , http://en.wikipedia.org/wiki/Mark-8. No keyboard, no CRT.
It was a learning experience back in 1974 (top of the line then)…

Great question… part of this is dependent on the STM32F205 and also partly dependent on the crystal oscillator used inside the PØ module. There is no spec on this accuracy in the USI datasheet, but the STM32F205 datasheet has this to say with respect to Clocks and startup:

On reset the 16 MHz internal RC oscillator is selected as the default CPU clock. The
16 MHz internal RC oscillator is factory-trimmed to offer 1% accuracy. The application can then select as system clock either the RC oscillator or an external 4-26 MHz clock source. This clock is monitored for failure. If failure is detected, the system automatically switches back to the internal RC oscillator and a software interrupt is generated (if enabled). Similarly, full interrupt management of the PLL clock entry is available when necessary (for example if an indirectly used external oscillator fails).
The advanced clock controller clocks the core and all peripherals using a single crystal or oscillator. In particular, the ethernet and USB OTG FS peripherals can be clocked by the system clock.
Several prescalers and PLLs allow the configuration of the three AHB buses, the high- speed APB (APB2) and the low-speed APB (APB1) domains. The maximum frequency of the three AHB buses is 120 MHz and the maximum frequency the high-speed APB domains is 60 MHz. The maximum allowed frequency of the low-speed APB domain is 30 MHz.
The devices embed a dedicate PLL (PLLI2S) which allow to achieve audio class performance. In this case, the I2S master clock can generate all standard sampling frequencies from 8 kHz to 192 kHz.

I’ll have to relay that question to our contacts at USI and see how accurate the crystal is on the PØ and P1 modules. When I get an answer I’ll add that info to the datasheet(s).

Thanks for the question!

1 Like

Cool…will be useful to know. From the datasheet I think the base crystal is 26Mhz and they must be using some PLL FOO to get to 120MHz.

Final question before signing off & greetings from Dublin Ireland.

…Just to be sure the questions aren’t being answered by a Photon

…What is (three plus two divided by zero) plus ten ?

Thanks for the AMA :slight_smile:

1 Like

3 Likes

I still think the answer is 10, if you do this with pen and paper. Am I wrong?

Hey @Jack, I sent you a PM. Let’s let the Photon Engineers answer the questions since it’s their AMA! :smiley:

5 Likes
int num1 = 3;
int num2 = 2;
int num3 = 0;
int num4 = 10;
int num5 = 0;
    
void setup() {
    num5 = (num1 + num2 / num3) + num4;
    Serial.begin(9600);
}

void loop() {
    Serial.println(num5);
    delay(1000);
}

##output

13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13

EDIT: I was expecting a SOS and 5 blinks for Usage Fault: detects execution of undefined instructions, unaligned memory access for load/store multiple. When enabled, divide-by-zero and other unaligned memory accesses are also detected. But In the light of transparency I posted the result as-is… and I added a github issue to fix this :wink:

Other expected error codes can be found here: http://support.particle.io/hc/en-us/articles/204357864-Flashing-Red

2 Likes