Welcome to Johan Böhlin's project page!
This is a collection of software and hardware projects I have developed. Here you will find descriptions, schematics, images, downloads etc. for every project where it's available. If you got any question, suggestion or if you have sucessfully got any of the project working for you don't hesitate contacting me!
This is also a ego advertising column where i show what I have done and what my experiences are.
/ Johan Böhlin
Cykelstationer is an Android app to help you find Styr & Ställ public bicycle stations in Gothenburg, Sweden.
With Cykelstationer you can, in a list or on a map, find the closest station with available bikes or free stands.
There is also a widget you can add to your homscreen where you can see available bikes and free stands for a specific station. Just tap the widget to update it.
Download at https://play.google.com/store/apps/details?id=com.fjun.cykelstationer
sp_server is a HTTP server implemented in C which provide a REST API for Spotify, using libspotify. It implements almost all the API provided by libspotify 10.1.16. The source is available at bitbucket.
Its currently running on a raspberrypi connected to my home entertainment system.
A new version of NextDeparture was released yesterday. Now supporting the new widget type “Route” which displays a route between two stops, including changes. Also its now possible to change text and background color as well as transparency. Download Next departure here.
As a request from MikroElektronika, I'm starting a project to port the uIP-stack to MikroElektronika's microC compilers for PIC, dsPIC and PIC32. The ports will be available online as open source.
I'm currently working on an application for remotely reading and sending SMS on an Android device via a web interface. The fun thing about this is that I'm using Googles C2DM, or Cloud to Device Messaging, which let's me connect to the device from the webpage without any input/clicks needed by the user on the device. When a connect request is sent via the webpage, Google pushes the message to the device which in turn establishes a TCP/IP connection to a RPC server, which in turn the webpage communicates with.
Today we received our first initial PCB batch! 20 panels with 2x development PCBs, 1x Ethernet extension PCB, 1x USB extension PCB, 1x Dimmer extension PCB and 1x integrated Dimmer PCB each.
You can read more about the project at the Ember Cortex-M3 page.
I'm currently working on a Home Infotainment System to interact and control the 802.5.4 nodes nodes in the apartment. It runs on a Android 1.6 touchpad device, and you can check it out at the Android Home Infotainment System page.
I have released my first Android application, NextDeparture, on Android Market. The application is a widget showing the next departure time for busses and trams in the Swedish public transport company Västtrafik.
The first wireless node is up and running in my apartment! Still very basic setup, especially firmware whise. Hardware are two Generic-802.15.4, one just as it is running on batteries and sleeping all the time, except for every 30s when it measures the temperature and sends the value out in the air as an UDP-broadcast packet. The other node is connected a ethernet-switch and the 802.15.4-ethernet expansion who only copy data between the 802.15.4 and 802.3 mac-layers. The node is running the uIP-stack and currently IPv4. All nodes and their data are monitored online at http://fjun.com/nodeServer/, using the nodeServer.
All content on this site and on subversion now relies under Creative Commons Attribution-Noncommercial-Share Alike 2.5 Sweden License.
fjun.com has moved, and so has the subversion server. Check out the subversion page for the new url.
Soon I will order four new PCBs. First, there are three Generic 802.15.4 cards: One generic card that uses the MRF24J40MA 802.15.4 tranceiver card. The module has an uC and 18 I/Os and supply port, equipped with a DC/DC-buck-boost for battery supply. The other card is identical to the first one, except that the MRF24J40MA is integrated and replaced with a MRF24J40 and an onboard PCB antenna. The third card is an ethernet expansion to the two previous cards, so the 802.15.4 wireless network can be integrated to ethernet and internet. The fourth and last card is a new revision of the Generic-USB module, now in a 3.3V version as well as a new I/O-port compatible with the Generic 802.15.4 cards.
I have now sucessfully written a driver for Microchips MRF24J40 802.15.4 transceiver that work togheter with the C18 port of the uIP-stack. It's now possible to send ipv4 packets like UDP and TCP over 802.15.4! There are a lot of limitation and assumptions, but it works. I have added the driver to the uIP-stack, and there are a test project at SVN. Next step: 6LoWPAN.
I have successfully ported Adam Dunkels uIP 1.0 TCP/IP-stack to work with Microchip C18 compiler, and the enc28J60 ethernet controller. There are still some issues regarding strings and sockets, but it possible to ping the device as well as setting up an TCP-connection. You can read more about it at the uIP page .
I and Fredrik have successfully implemented a chat application over USB, using the Generic zigbee togheter with the Generic-USB platform, and a chat client implemented in C#! Not that useful, but cool. :) Source code for the firmware and C# application can be found in the Embedded/082.15.4/MiWi P2P - Generic USB/ and PC/Chatbee folder at the SVN software repository.
After the zigbee success I and Fredrik has started to develop a generic module for the 802.15.4 wireless standard. The module replaces the generic-zigbee module, and can be found at this link at the Generic-802.15.4 module page.
I and Fredrik successfully got genericzigbee to work today. We are now using the simplified Microchip MiWi P2P stack instead of the USB and MiWi migrated stack. We managed to toggle a LED remotely using a button and LED connected to each device. We also have to fix a bug in the MiWi P2P stack which caused a variable (ONE_SECOND) to overflow and thus prevented the node to send any packets at all. We needed to patch the PCB as well, removing the !CS control from the INT-signal.
Welcome to the blog!
I have added a blog feature to this wiki where I will keep you updated about my projects.