Raumfahrer Projekt - Day Zero2018-02-18
Phew, it's been a busy six months or so since I've last posted. So busy, in fact, that I had two weeks of vacation left over from last year that I was able to roll over to this year, but it had to be used by the end of Q1.
Tomorrow (2018-02-19) kicks off my first day of vacation, and I wanted to share what I'm planning on doing for the next two weeks - something I'm calling The Raumfahrer Projekt.
Okay, what is it?
The idea is to develop a portable, battery powered device to track people or objects as they move around inside of a room or building.
My design will be based primarily on a module called the DWM1000, which is an Ultra Wide Band (3.5GHz to 6.5GHz) radio module capable of measuring distance between two units at an accuracy of around 10cm. It does this by sending a few pings back and forth between two or more of these radios, and measuring the time elapsed between these pings. Since radio waves propigate at the speed of light, it is possible to measure distance based on the round trip time of messages. In a later post, I'll go a bit more into how exactly this module does this.
I also plan to include a 3 dimensional accelerometer on the board itself, as well as a Cortex M4F processor, which should be capable of doing some Kalman Filter based Sensor Fusion in order to make the tracking even more accurate.
Oh, and I plan to write the whole firmware in Rust, since I've been looking for a bare metal embedded project to apply some of the other Embedded Rust learning I've worked on in the past. I'm looking forward to incorporate some of the really awesome work Japaric has been doing lately with the RTFM and Embedded HAL components, and hopefully contribute back a bit.
How much do I expect to get done?
Well, I don't expect to have a fully working everything, even with two weeks of full time effort. I'll be learning some new software tools, playing with new hardware, and making happy little mistakes along the way.
My primary goals for the next two weeks are:
- Build a set of prototyping boards capable of fully using the microcontroller, the radio, and maybe the accelerometer (two, so I can develop the ranging stuff)
- Have an inital working driver for the DW1000 radio, so I can add to it incrementally in my free time after these two weeks
- Design the first PCBs for test units, so I can send those off to be manufactured after I have validated the circuit
- This includes brushing up on my PCB design and layout knowledge, which has been gathering dust for the past few years
- Learn a lot about the state of the art in Embedded Rust
- Document as much of my development and learning process as possible, in the form of blog posts, podcasts, and videos
- Contribute back to the open source projects I use as much as possible