I found a way to combine a bunch of things I have wanted to learn together into one project!
For a while, I have been fascinated with phone phreaking, and specifically the mythical BLUE BOX. Lots of myths and history surounding it. I think I can probably still play with it on Project MF, but we will see.
It seems like a great way to learn more electronics stuff, and some radio adjacent stuff too. I’ll need to figure out how to generate waves at specfic frequencies and how to combine them.
I happen to have bought an stm32 f3 discovery that seems like a good platform for this. I think it’s fast enough to bit bang out a wave at 2600Hz? Guess I will find out!
I wanted to write up some quick notes of things I learned getting cerulean box blinking.
Step 1 was to create a new rust project and add the f3 dependency. After that, I copied the blinky.rs to my project as
Next I had to add a few more dependencies,
This was enough to get rust complaining about an
No idea what that was, but I made it go away by copy the contents of the f3 project’s .cargo/config.
As far as I can tell, this species the target architecture as being
thumbv7em-none-eabihf which is ARM (thumbv7 specificall), with no OS and support for hard float.
That was enough to get things compiling, but then gdb would start…
In the f3 example, I was able to type continue but all gdb could do was disassemble main.
It turns out I also needed to copy .gdbinit.
I believe this works because I have
set auto-load safe-path / in
After that, I get blinky leds!
There’s a few things I want to do next. I need to actually twiddle a pin at a given frequency. That means learning how timers work probably, maybe interupts if I want to be able to other things.
I also need to figure how this semihosting thing. I think that’s so I can run the code from my laptop, and get error messages, strack traces and breakpoints which seem useful, but… I don’t know how to turn it off. How to I make a binary I can flash onto the f3 directly?
Adventures for next time!