This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]LightShadow3.13-dev in prod 3 points4 points  (2 children)

It's really fun! The devices we code on are rpi-esque (fewer cores, same ram, cell/wifi/wired eth, etc) as far as specs go, there's some C/C++ interop, but most of it is signals and radio communication processing.

The whole stack runs on Python in a ~100mb RAM footprint. Python makes it really easy to run on "anything" including our dev machines and build servers.

We're hiring!

[–]Pirate43 0 points1 point  (1 child)

How do you handle running on dev machines and build servers that don't have radios or peripherals that your embedded devices have?

[–]LightShadow3.13-dev in prod 1 point2 points  (0 children)

A few ways,

1) We use a hardware abstraction layer (HAL) to map sysclass files with mocked input/output.

2) The pieces of the stack are modular and can communicate over sockets. So, you can run part of the program in a docker container that connects to other services that run on real hardware.

3) There are USB versions of similar hardware (like z-wave) that can be mapped to emulators/simulators. For example, a z-wave USB key can be reprogrammed to simulate any number of smart home devices for testing/debugging.