ivche has quit [Read error: Connection reset by peer]
ivche has joined #rust-embedded
burrbull[m] has quit [Quit: Idle timeout reached: 172800s]
andrewmorrow[m] has joined #rust-embedded
<andrewmorrow[m]>
Has anyone used the USART on a SAMD in synchronous mode before? I've written a very simple driver to try to read scan codes from a PS/2 keyboard, but when the uC boots, it reads garbled scan codes off the USART until you've pressed 4 or 5 different keys (not the same key 4 or 5 times!) and then it begins reading correct data
<andrewmorrow[m]>
I'm very confused because I can watch the bus with a scope and see that the scan codes coming off the keyboard are always correct, so I have no idea why the USART reads garbage until it's seen a sufficient variety of input bytes
<andrewmorrow[m]>
pressing and releasing Q send 0x15, 0xF0, 0x15 on the bus, but the SAMD USART reads 0x21, 0xbf, 0xa1 every single time after reboot until I press a few different keys. Then it begins reading the correct values
<andrewmorrow[m]>
I cross-posted to the atsamd-rs channel too but think I figured it out: you have to set the expected baud rate, even when running in synchronous mode with an external clock, or else the uC struggles to synchronize the clock input, which is bizarre but I guess a function of the oversampling
pcs38 has joined #rust-embedded
<therealprof[m]>
<andrewmorrow[m]> "I cross-posted to the atsamd-..." <- I only read your post right now but if anything doesn't work as expected in SAMD, always check the clocks... I've had the weirdest problems in completely unrelated areas because I forgot to wait for the PLL lock on somewhere.
sourcebox[m] has joined #rust-embedded
<sourcebox[m]>
James Munns: There's "Digitone's Digitakt 2" on your users list, I have serious doubts on that. Also, it would have to be "Elektron Digitakt 2".
<sourcebox[m]>
Yes, Elektron has had job offerings for Rust for years now, but I'm not aware that products using it are already out.
<JamesMunns[m]>
Yeah, the citation for that was a Reddit post, so no official confirmation
<sourcebox[m]>
The "Digitakt 2" is an evolution of the original "Digitakt", which is AFAIK a Coldfire design.
<JamesMunns[m]>
I think some folks were saying that the Digitakt 2 was a new hardware platform?
<sourcebox[m]>
It's not completely impossible that they replaced the platform, but I would really get that confirmed somehow.
<sourcebox[m]>
I had an email conversation with one of the devs and also it was mentioned in a video some time ago.
M9names[m] has joined #rust-embedded
<M9names[m]>
<sourcebox[m]> "As a vendor, I would not do that..." <- What's worse, this or changing part number with a like-for-like replacement?
<sourcebox[m]>
<M9names[m]> "What's worse, this or changing..." <- There's a good amount of business and maintainance issues to consider.
<sourcebox[m]>
E.g. Elektron is known for having a very long support period for firmware updates with backporting new features.
<sourcebox[m]>
When you do an mk2 version, you always have to estimate the market for it because a lot of users will not upgrade as they are satisfied with the original. So doing a complete redesign can be a risk.
<thejpster[m]>
you all REALLY didn't like running QEMU on Windows, so...
<JamesMunns[m]>
Posted on LinkedIn and Reddit, we'll see if I get a bunch of "yes and"s or "well actually"s :D
<JamesMunns[m]>
* and Reddit and BlueSky, we'll
Kaspar[m] has quit [Quit: Idle timeout reached: 172800s]
RobertJrdens[m] has joined #rust-embedded
<RobertJrdens[m]>
James Munns: We've been shipping control systems for quantum technology applications for a decade now. They heavily rely on Embedded Rust and that has lead to several subtantial contributions to the ecosystem, for example `smoltcp`.
<RobertJrdens[m]>
A bit surprised that would be omitted.
<RobertJrdens[m]>
The majority of trapped ion based quantum technology applications (from optical atomic clocks to quantum computers both in academia and industry) worldwide use this.
<JamesMunns[m]>
agh! I blame recency bias, I've had stabilizer et. al in my slide decks for years now :D
<JamesMunns[m]>
Let me add it!
<JamesMunns[m]>
How does:
<JamesMunns[m]>
> The [Sinara Stabilizer] control system for trapped ion quantum technlogy, used for atomic clocks and quantum computers both in research and in industry use Rust on STM32 based devices
<JamesMunns[m]>
sounds @Robert Jรถrdens ?
<RobertJrdens[m]>
Stabilizer is just one outcrop of that entire ARTIQ/Sinara community. The bulk and the original driver for Rust there is ARTIQ https://github.com/m-labs/artiq
<RobertJrdens[m]>
Not only STM32 but Rust on embedded Zynq/Vexrisc and mor1kx.
<RobertJrdens[m]>
s/Vexrisc/Vexriscv/
<JamesMunns[m]>
> The [ARTIQ] control system for trapped ion quantum technlogy, used for atomic clocks and quantum computers both in research and in industry use Rust on STM32 based devices like the [Sinara Stabilizer]
<JamesMunns[m]>
works? Or feel free to propose an alternate one-sentence-y writing :)
<JamesMunns[m]>
> The [ARTIQ] control system for trapped ion quantum technlogy, used for atomic clocks and quantum computers both in research and in industry use Rust on devices like the STM32 based [Sinara Stabilizer]
<JamesMunns[m]>
works? Or feel free to propose an alternate one-sentence-y writing :)
<RobertJrdens[m]>
In the [ARTIQ/Sinara] ecosystem Embedded Rust on VexRiscv, Zynq, and STM32 is used to control optical atomic clocks and quantum computers both in fundamental research and in industry.
<RobertJrdens[m]>
Thanks!
<JamesMunns[m]>
Very lightly edited, live now :)
chrysn[m] has quit [Quit: Idle timeout reached: 172800s]
ivmarkov[m] has quit [Quit: Idle timeout reached: 172800s]
<Ralph[m]>
<JamesMunns[m]> "Posted on LinkedIn and Reddit..." <- do you have a link to your linkedin post (i want to re-share it for the nay-sayers in my connection ๐) - i can't seem to find you on linkedin ๐ค
<Ralph[m]>
thanks! no clue why linkedin didn't want to find you when i searched your name + your company name (maybe i was too far removed from you for the algorithm to even pick you up? though that's the first time this has happened...). reposted it ๐
korbin[m] has joined #rust-embedded
<korbin[m]>
<RobertJrdens[m]> "Not only STM32 but Rust on..." <- i too use rust on vexriscv
ciakval[m] has joined #rust-embedded
<ciakval[m]>
<korbin[m]> "i too use rust on vexriscv" <- Is Rust the new Arch? ๐ค
<ciakval[m]>
I too use Rust BTW ๐
vollbrecht[m] has quit [Quit: Idle timeout reached: 172800s]
<balbi[m]>
<ciakval[m]> "Is Rust the new Arch? ๐ค..." <- dang, I use Arch and Rust BTW :D
<thejpster[m]>
good job we can package it up into a crate so other people don't have to worry about it
<thejpster[m]>
I am starting to wonder though if we should collapse cortex-r-rt and cortex-a-rt into cortex-ar-rt, because they are really similar now
<JamesMunns[m]>
cortex-arrrrrrrt
Noah[m] has joined #rust-embedded
<Noah[m]>
XD
<thejpster[m]>
cortex-ar-me-hearties
<thejpster[m]>
Technically itโs aarch32-rt because it would run on an AArch32 core that wasnโt Cortex branded, like the ones in an early Snapdragon or Exynos
<thejpster[m]>
And it would match aarch64-rt
pcs38 has quit [Quit: leaving]
<RobinMueller[m]>
<thejpster[m]> "I am starting to wonder though..." <- any chance that cortex-a or cortex-r specific code might come back at a later stage? I was considering trying cortex-a-rt on this beaglebone I have lying around here. Need to solder a JTAG connector on it though...
<RobinMueller[m]>
* this beaglebone black I have
<thejpster[m]>
I mean, yeah, it's possible? I don't know enough to say for certain.
<thejpster[m]>
one the one hand we have code duplication, on the other we have the risk of doing a bunch of work to merge it and then having to split it again.
<thejpster[m]>
https://github.com/rust-embedded/cortex-ar/pull/27 almost broke me. Trying to get a spare register to work out if you're in T32 or A32 mode, for the undefined handler, but putting everything back exactly it was was quite difficult. I wanted to skip the SRS/RFE and do it manually, except I need a register to pop the CPSR into and I don't have one because all my registers are now pristine.
<thejpster[m]>
I propose we leave -a-rt and -r-rt split for now.
<thejpster[m]>
<RobinMueller[m]> "any chance that cortex-a or..." <- I have a 32-bit Raspberry Pi 2 (before they switched to the 64-bit chip from the Raspbery Pi 3). I might try that. I think it's quad Cortex-A7?
diondokter[m] has quit [Quit: Idle timeout reached: 172800s]
pcs38 has joined #rust-embedded
cinemaSundays has joined #rust-embedded
rainingmessages has quit [Quit: bye]
rainingmessages has joined #rust-embedded
cinemaSundays has quit [Quit: Connection closed for inactivity]
Amit[m] has joined #rust-embedded
<Amit[m]>
Hi all, a bit out of left field, but Tock is going to have it's annual get together semi-co-located with RustConf---specific venue TBD but it'll be Friday September 5th in Seattle after the main RustConf days (we're coordinating with the conf organizers a bit to make sure we don't step on the conference toes in any meaningful way). I'm wondering a couple related things:
<Amit[m]>
(1) Is there going to be a contingent of general Rust embedded folks in and around RustConf (I know bartmassey obviously). I know many of you are outside the US, which makes Seattle both far and, shall we say, legally confusing to travel to atm (for example, while Leon and I really really enjoyed RustNL last year and the embedded wg unconf that followed, we are unlikely to join this year due to travel concerns).
<Amit[m]>
(2) If so, would there be interest in piggy-backing on the organizing work we're doing anyway to have some sort of even for embedded Rust more generally
<bartmassey[m]>
I'm happy to help with local arrangements for a thing if folks want to do one. I'm 3.5 hours drive away in Portland, so not so far.
<thejpster[m]>
Having two Embedded Rust meet-ups per year - one attached to a North American conference and one attached to a European conference makes sense, and I would support that meet-up being broader than "just" the Embedded Devices Working Group (where's my Rust Society already?!) because it's important we all keep talking to each other.
<thejpster[m]>
Unfortunately I won't be at either RustConf nor RustNL.
<thejpster[m]>
There's dangerously little jumper left. Only a jumbled mess of yarn.
<balbi[m]>
thejpster[m]: v1 looked so small and tidy
<thejpster[m]>
but also it was wrong
<balbi[m]>
sadly
<thejpster[m]>
now we have more tests, which have revealed more bugs (mainly in documentation)
<thejpster[m]>
I think it's all good now. All the functions are in the right order. Every exception handler has both a named asm trampoline, and PROVIDE'd default asm trampoline, a C function and a PROVIDED'd default C function.
Mathias[m] has joined #rust-embedded
<Mathias[m]>
The Embedded contingent at RustConf last year was small. I was not planning on going (and instead focus more on RustWeek). I might reconsider if there more things planned.
JasperHarrison[m has quit [Quit: Idle timeout reached: 172800s]