753 karma · joined February 20, 2016
I would strongly hesitate to recommend the Pi for anything situation where 99% reliability (or above) was required unless I understood the domain back to front and could cover all the failure cases such as the expected operating environment ranges (temperature, power quality, EMI etc...).
I initially thought this might be used to hack into phones via the lightening or USB ports, but the security on these devices is pretty good. It seems less likely that an exploit of this value would be put into cables like this. I still worry about plugging my phone into random hotel or transport USB charge ports however... I should pick up a USB condom I guess!
I assume the micro itself is not developed by them given the team size - even with 1 guy looking after this, we're looking at a factor of 30+ in terms of effort to develop, test and certify this type of IC
Humor aside, I prefer to subscribe to the Harry Potter ear worm and make sure everyone is aware of it and is comfortable to reach out at any time:
"Help will always be given at Hogwarts, Harry, to those who ask for it"
https://archives.nbclearn.com/portal/site/k-12/browse/?cueca...
The attention to detail really got to me however over time - the normal reset message was in lower case, but all the custom programs could print was in UPPER case. I was always "its sooo obvious - they'll find me out", when I saw RESET, but nobody ever clocked.
I never did use these notes or solvers in an exam - once I knew I had them, I would remember them anyway.
(I used to love Tile, but as a product we hit its technological peak several years ago and the network effect does not seem to improving this incrementally as much as it used to)
I'd also recommend they put up a compatibility table of power supplies on their website in time - probably cables as well! Its a good opportunity to collaborate with the Google engineer who has been spending his non-core hours on the USB-C madness.
https://blog.expo.io/expo-sdk-v33-0-0-is-now-available-52d1c...
Ignoring the user interface, having a single JS codebase for APIs, business logic and unit tests is pretty darn exciting IMO, especially with typescript support.
The SDCard solves this problem fairly well (although the solution requires a reasonable level of computer literacy due to the filesystems and raw block device access needed, however its a good fit for the Pi user demographic).
Other systems solve this chicken/egg problem by having a tool that runs on a PC that can perform the programming of attached storage, often by downloading code and data into a CPUs RAM and then having it flash to the disk. Exposing JTAG to Pi customers however is a step too far and would require more expensive external JTAG hardware to be needed per customer as well.
If I was Pi, I'd put a 10cent USB stick IC onto the board that connects in parallel to the eMMC and enable the board to be plugged into any USB host and mounted as external storage. Some programmable logic (get one of the Silego 10cent programmable logic ICs) would be needed to prevent the USB from being mounted when the system was running - I'd probably add in a button or switch that is read at power on and determines which interface gets to see the eMMC. It would need to hold either the Pi chip or the USB IC in reset depending on which function was selected.
A second option would be to put an USB eMMC protocol stack into the BootROM, but this would need LittleKernel or something similar in the BootROM and its non-trivial to get right!
eMMC has (with exception of some high grade SDCards) better write cycles and is considerably more durable than the average SDCard.
When we ported Android to the VC4 architecture the first time (~2010), the low memory killer in Linux was subverted to understand to kill Android applications based on their use of the VideoCore GPU memory and it worked pretty well, yet it would still close the primary running app once in a while. Run monkey over Android and all hell broke loose - really tough situations to defensively code fore. For example, for CX reasons, you had to ignore some GLES errors in the primary client due to low memory, then the system had to kill another application that was using the memory, then it would kill the EGL context for the primary application so it would refresh the entire app lifecycle using an almost suspect code path inside Android. Good times! Imagine Wayload has very similar challenges for normal desktop use.
I ported Wayland to VideoCore4 (the multimedia engine in first Pi chip) back in 2011 - it was part of the Meltemi Nokia project that got cancelled the follow year - shame as it was pretty cool and had half a chance IMO. We worked with the team in Oslo on QT acceleration over GL ES and used EGL below Wayland (coupled with some magic APIs to get the VideoCore HVS to work well). Ported this to an ARM combo chip that had just the VideoCore GPU in it as well (no HVS) - it worked pretty well.
Prior to this however, I made a VideoCore demo that used a PCI bridge chip (from Broadcom) and you could plug it into a Dell laptop running Ubuntu and get accelerated video decode and also X11 window scaling working at 60fps. We nearly sold this into Apple for accelerating their macbook's but IIRC, getting the macbook into low power mode whilst the video was playing on the external chip was going to be soo much work that they gave up.
A even further back, I remember validating the HVS hardware block and writing the initial scaler driver for it (IIRC, scaler.c...) and made a dispman2 port for the driver. Circa 2006!
Great team - one of the most enjoyable set of people to work with I've ever come across.
My 2 cents.